@elaraai/east 1.0.67 → 1.0.69

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.
Files changed (79) hide show
  1. package/dist/src/ast.d.ts +2 -0
  2. package/dist/src/ast.d.ts.map +1 -1
  3. package/dist/src/ast_to_ir.d.ts +7 -3
  4. package/dist/src/ast_to_ir.d.ts.map +1 -1
  5. package/dist/src/ast_to_ir.js +62 -15
  6. package/dist/src/ast_to_ir.js.map +1 -1
  7. package/dist/src/codegen/codegen.spec.d.ts +6 -0
  8. package/dist/src/codegen/codegen.spec.d.ts.map +1 -0
  9. package/dist/src/codegen/codegen.spec.js +763 -0
  10. package/dist/src/codegen/codegen.spec.js.map +1 -0
  11. package/dist/src/codegen/doc.d.ts +111 -0
  12. package/dist/src/codegen/doc.d.ts.map +1 -0
  13. package/dist/src/codegen/doc.js +350 -0
  14. package/dist/src/codegen/doc.js.map +1 -0
  15. package/dist/src/codegen/doc.spec.d.ts +6 -0
  16. package/dist/src/codegen/doc.spec.d.ts.map +1 -0
  17. package/dist/src/codegen/doc.spec.js +86 -0
  18. package/dist/src/codegen/doc.spec.js.map +1 -0
  19. package/dist/src/codegen/index.d.ts +15 -0
  20. package/dist/src/codegen/index.d.ts.map +1 -0
  21. package/dist/src/codegen/index.js +15 -0
  22. package/dist/src/codegen/index.js.map +1 -0
  23. package/dist/src/codegen/printer.d.ts +63 -0
  24. package/dist/src/codegen/printer.d.ts.map +1 -0
  25. package/dist/src/codegen/printer.js +1529 -0
  26. package/dist/src/codegen/printer.js.map +1 -0
  27. package/dist/src/codegen/spellings.d.ts +73 -0
  28. package/dist/src/codegen/spellings.d.ts.map +1 -0
  29. package/dist/src/codegen/spellings.js +298 -0
  30. package/dist/src/codegen/spellings.js.map +1 -0
  31. package/dist/src/codegen/spellings.spec.d.ts +6 -0
  32. package/dist/src/codegen/spellings.spec.d.ts.map +1 -0
  33. package/dist/src/codegen/spellings.spec.js +191 -0
  34. package/dist/src/codegen/spellings.spec.js.map +1 -0
  35. package/dist/src/codegen/types.d.ts +67 -0
  36. package/dist/src/codegen/types.d.ts.map +1 -0
  37. package/dist/src/codegen/types.js +173 -0
  38. package/dist/src/codegen/types.js.map +1 -0
  39. package/dist/src/compile.js +10 -10
  40. package/dist/src/compile.js.map +1 -1
  41. package/dist/src/expr/block.d.ts +148 -0
  42. package/dist/src/expr/block.d.ts.map +1 -1
  43. package/dist/src/expr/block.js +168 -4
  44. package/dist/src/expr/block.js.map +1 -1
  45. package/dist/src/expr/index.d.ts +155 -2
  46. package/dist/src/expr/index.d.ts.map +1 -1
  47. package/dist/src/expr/index.js +155 -2
  48. package/dist/src/expr/index.js.map +1 -1
  49. package/dist/src/functions.crossimport.spec.d.ts +6 -0
  50. package/dist/src/functions.crossimport.spec.d.ts.map +1 -0
  51. package/dist/src/functions.crossimport.spec.js +45 -0
  52. package/dist/src/functions.crossimport.spec.js.map +1 -0
  53. package/dist/src/functions.d.ts +4103 -0
  54. package/dist/src/functions.d.ts.map +1 -0
  55. package/dist/src/functions.js +443 -0
  56. package/dist/src/functions.js.map +1 -0
  57. package/dist/src/functions.spec.d.ts +6 -0
  58. package/dist/src/functions.spec.d.ts.map +1 -0
  59. package/dist/src/functions.spec.js +123 -0
  60. package/dist/src/functions.spec.js.map +1 -0
  61. package/dist/src/index.d.ts +2 -0
  62. package/dist/src/index.d.ts.map +1 -1
  63. package/dist/src/index.js +2 -0
  64. package/dist/src/index.js.map +1 -1
  65. package/dist/src/naming.d.ts +50 -0
  66. package/dist/src/naming.d.ts.map +1 -0
  67. package/dist/src/naming.js +194 -0
  68. package/dist/src/naming.js.map +1 -0
  69. package/dist/src/naming.spec.d.ts +6 -0
  70. package/dist/src/naming.spec.d.ts.map +1 -0
  71. package/dist/src/naming.spec.js +154 -0
  72. package/dist/src/naming.spec.js.map +1 -0
  73. package/dist/src/serialization/beast2/index.spec.js +25 -0
  74. package/dist/src/serialization/beast2/index.spec.js.map +1 -1
  75. package/dist/src/serialization/beast2/shared.d.ts +1 -1
  76. package/dist/src/serialization/beast2/shared.d.ts.map +1 -1
  77. package/dist/src/serialization/beast2/shared.js +9 -1
  78. package/dist/src/serialization/beast2/shared.js.map +1 -1
  79. package/package.json +11 -2
@@ -14,6 +14,7 @@ import { StringExpr } from "./string.js";
14
14
  import { ArrayExpr } from "./array.js";
15
15
  import { SetExpr } from "./set.js";
16
16
  import { DictExpr } from "./dict.js";
17
+ import { RecursiveExpr } from "./recursive.js";
17
18
  import { type CallableFunctionExpr, FunctionExpr } from "./function.js";
18
19
  import type { PlatformFunction } from "../platform.js";
19
20
  import { type EastTypeValue } from "../type_of_type.js";
@@ -150,6 +151,73 @@ export declare const ge: typeof greaterEqual;
150
151
  * For immutable data types, such as integers and strings, this is equivalent to equality.
151
152
  */
152
153
  export declare function is<T>(left: Expr<T>, right: SubtypeExprOrValue<NoInfer<T>>): BooleanExpr;
154
+ /**
155
+ * Calls an East builtin by name — the raw spelling for a builtin the surface
156
+ * has no method for, and the form the codegen printers fall back to for one
157
+ * (`RAW_ONLY`). The python twin is `East.builtin`.
158
+ *
159
+ * @param name - The builtin's IR name, e.g. `"ArrayGetKeys"`
160
+ * @param typeParameters - Its type parameters, in declaration order
161
+ * @param args - Its arguments in IR order — expressions, values, or callbacks
162
+ * @param outputType - The type of the result
163
+ * @returns The `Builtin` expression, typed `outputType`
164
+ * @throws {Error} When `name` is not a builtin, or the type-parameter or
165
+ * argument counts do not match its declaration
166
+ *
167
+ * @example
168
+ * ```ts
169
+ * const size = East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
170
+ * $.return(East.builtin("ArraySize", [IntegerType], [xs], IntegerType));
171
+ * });
172
+ * const compiled = East.compile(size, []);
173
+ * compiled([1n, 2n, 3n]); // 3n
174
+ * ```
175
+ */
176
+ export declare function builtin(name: string, typeParameters: EastType[], args: unknown[], outputType: EastType): Expr;
177
+ /**
178
+ * Widens a value to a declared supertype explicitly — an `As` node. The
179
+ * builder inserts the same node itself wherever a narrower value meets a
180
+ * wider declared type (a `$.const(x, T)`, a function argument), so this is
181
+ * the spelling for the other positions; the codegen printers spell every
182
+ * IR `As` with it. The python twin is `East.as_`.
183
+ *
184
+ * @param value - The value or expression to widen
185
+ * @param type - The wider type; the value's type must be a subtype of it
186
+ * @returns The value as an expression of `type`
187
+ * @throws {Error} When the value's type is not a subtype of `type`
188
+ *
189
+ * @example
190
+ * ```ts
191
+ * const Shape = VariantType({ circle: FloatType, square: FloatType });
192
+ * const widen = East.function([FloatType], Shape, ($, r) => {
193
+ * $.return(East.as(East.value(variant("circle", r)), Shape));
194
+ * });
195
+ * const compiled = East.compile(widen, []);
196
+ * compiled(2.0); // variant("circle", 2.0)
197
+ * ```
198
+ */
199
+ export declare function as<T extends EastType>(value: SubtypeExprOrValue<NoInfer<T>>, type: T): ExprType<T>;
200
+ /**
201
+ * Wraps a value or expression of a recursive type's node type in the
202
+ * recursive type — a `WrapRecursive` node; {@link RecursiveExpr.unwrap} is
203
+ * its inverse. The python twin is `East.wrap_recursive`.
204
+ *
205
+ * @param value - The value or expression of the wrapper's node type
206
+ * @param type - The recursive type to wrap it in
207
+ * @returns A `RecursiveExpr` of `type`
208
+ *
209
+ * @example
210
+ * ```ts
211
+ * const ListType = RecursiveType(self => VariantType({ nil: NullType, cons: StructType({ head: IntegerType, tail: self }) }));
212
+ * const singleton = East.function([IntegerType], ListType, ($, x) => {
213
+ * const nil = $.const(East.wrapRecursive(variant("nil", null), ListType));
214
+ * $.return(East.wrapRecursive(variant("cons", { head: x, tail: nil }), ListType));
215
+ * });
216
+ * const compiled = East.compile(singleton, []);
217
+ * compiled(1n); // variant("cons", { head: 1n, tail: variant("nil", null) })
218
+ * ```
219
+ */
220
+ export declare function wrapRecursive<T>(value: SubtypeExprOrValue<T>, type: RecursiveType<T>): RecursiveExpr<T>;
153
221
  /** Print a value as a string. */
154
222
  export declare function print(value: Expr): StringExpr;
155
223
  /** Compute the difference between two values of the same type.
@@ -169,6 +237,50 @@ export declare function composePatch<T extends EastType>(first: Expr<PatchTypeOf
169
237
  * Applying the inverted patch to the "after" value produces the "before" value.
170
238
  */
171
239
  export declare function invertPatch<T extends EastType>(patch: Expr<PatchTypeOf<T>>, type: T): ExprType<PatchTypeOf<T>>;
240
+ /**
241
+ * The brand every declaration handle carries — a registered symbol, so a
242
+ * handle built by any copy of `@elaraai/east` in the process is recognised.
243
+ */
244
+ export declare const PLATFORM_DECLARATION: unique symbol;
245
+ /**
246
+ * What a platform declaration handle says about itself: the identity of the
247
+ * `Platform` node a call emits — its registered name, declared input and
248
+ * output types, asyncness, optionality and (generic) type parameter names —
249
+ * readable from the handle. A library exports its declarations under its
250
+ * own names (`Compression.Tar.create` is the handle for `tar_create`), so
251
+ * anything given the library's exports can spell a call as the library
252
+ * spells it: the codegen printer does (`toSource`'s `libraries`).
253
+ */
254
+ export interface PlatformDeclaration {
255
+ /** The platform function's registered name — the `Platform` node's `name`. */
256
+ readonly name: string;
257
+ /** The declared input types (placeholder names for a generic declaration's parameters). */
258
+ readonly inputs: readonly (EastType | string)[];
259
+ /** The declared output type (or a placeholder name). */
260
+ readonly output: EastType | string;
261
+ /** Whether calls emit an async `Platform` node. */
262
+ readonly async: boolean;
263
+ /** Whether compiling succeeds with no implementation provided. */
264
+ readonly optional: boolean;
265
+ /** The type parameter names of a generic declaration; absent on a concrete one. */
266
+ readonly typeParameters?: readonly string[];
267
+ }
268
+ /**
269
+ * Whether `value` is a platform declaration handle — what `East.platform`,
270
+ * `East.asyncPlatform`, `East.genericPlatform` and `East.asyncGenericPlatform`
271
+ * return.
272
+ *
273
+ * @param value - Anything
274
+ * @returns True for a declaration handle, whose identity fields are then typed
275
+ *
276
+ * @example
277
+ * ```ts
278
+ * const log = East.platform("log", [StringType], NullType);
279
+ * isPlatformDeclaration(log); // true
280
+ * log.name; // "log"
281
+ * ```
282
+ */
283
+ export declare function isPlatformDeclaration(value: unknown): value is PlatformDeclaration;
172
284
  /** Callable helper type for synchronous platform functions. */
173
285
  export type PlatformDefinition<Inputs extends EastType[], Output extends EastType> = ((...args: {
174
286
  [K in keyof Inputs]: SubtypeExprOrValue<Inputs[K]>;
@@ -176,6 +288,14 @@ export type PlatformDefinition<Inputs extends EastType[], Output extends EastTyp
176
288
  implement: (fn: (...args: {
177
289
  [K in keyof Inputs]: ValueTypeOf<Inputs[K]>;
178
290
  }) => Output extends NullType ? null | undefined | void : ValueTypeOf<Output>) => PlatformFunction;
291
+ /** The registered platform function name. */
292
+ readonly name: string;
293
+ /** The declared input types. */
294
+ readonly inputs: Inputs;
295
+ /** The declared output type. */
296
+ readonly output: Output;
297
+ readonly async: false;
298
+ readonly optional: boolean;
179
299
  };
180
300
  /** Options for defining platform functions. */
181
301
  export interface PlatformOptions {
@@ -237,6 +357,14 @@ export type AsyncPlatformDefinition<Inputs extends EastType[], Output extends Ea
237
357
  implement: (fn: (...args: {
238
358
  [K in keyof Inputs]: ValueTypeOf<Inputs[K]>;
239
359
  }) => Output extends NullType ? Promise<null | undefined | void> : Promise<ValueTypeOf<Output>>) => PlatformFunction;
360
+ /** The registered platform function name. */
361
+ readonly name: string;
362
+ /** The declared input types. */
363
+ readonly inputs: Inputs;
364
+ /** The declared output type. */
365
+ readonly output: Output;
366
+ readonly async: true;
367
+ readonly optional: boolean;
240
368
  };
241
369
  /** Create a callable helper to invoke an asynchronous platform function.
242
370
  *
@@ -298,6 +426,16 @@ export type GenericPlatformDefinition<TParams extends readonly string[], Inputs
298
426
  implement: (factory: (...typeParams: {
299
427
  [K in keyof TParams]: EastTypeValue;
300
428
  }) => (...args: unknown[]) => unknown) => PlatformFunction;
429
+ /** The registered platform function name. */
430
+ readonly name: string;
431
+ /** The type parameter names. */
432
+ readonly typeParameters: TParams;
433
+ /** The declared input types, placeholders included. */
434
+ readonly inputs: Inputs;
435
+ /** The declared output type, or a placeholder. */
436
+ readonly output: Output;
437
+ readonly async: false;
438
+ readonly optional: boolean;
301
439
  };
302
440
  /** Create a callable helper to invoke a generic (polymorphic) platform function.
303
441
  *
@@ -367,6 +505,16 @@ export type AsyncGenericPlatformDefinition<TParams extends readonly string[], In
367
505
  implement: (factory: (...typeParams: {
368
506
  [K in keyof TParams]: EastTypeValue;
369
507
  }) => (...args: unknown[]) => Promise<unknown>) => PlatformFunction;
508
+ /** The registered platform function name. */
509
+ readonly name: string;
510
+ /** The type parameter names. */
511
+ readonly typeParameters: TParams;
512
+ /** The declared input types, placeholders included. */
513
+ readonly inputs: Inputs;
514
+ /** The declared output type, or a placeholder. */
515
+ readonly output: Output;
516
+ readonly async: true;
517
+ readonly optional: boolean;
370
518
  };
371
519
  /** Create a callable helper to invoke an asynchronous generic (polymorphic) platform function.
372
520
  *
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/expr/block.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/expr/block.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import {} from "../ast.js";
6
6
  import { ensure_source_map, get_current_source_map, get_location, get_location_id, printLocations } from "../location.js";
7
+ import { bindingNameAt, parameterNames } from "../naming.js";
7
8
  import { FunctionType, isSubtype, NullType, printType, isTypeEqual, StringType, NeverType, VariantType, BooleanType, TypeUnion, IntegerType, StructType, ArrayType, AsyncFunctionType, assignTypeId } from "../types.js";
8
9
  import { typeMismatchError } from "../type_diff.js";
9
10
  import { AstSymbol, Expr, SourceMapSymbol, TypeSymbol } from "./expr.js";
@@ -28,6 +29,7 @@ import { isVariant } from "../containers/variant.js";
28
29
  import { RefExpr } from "./ref.js";
29
30
  import { AsyncFunctionExpr, createAsyncFunctionExpr } from "./asyncfunction.js";
30
31
  import { PatchType } from "../patch/index.js";
32
+ import { applyTypeParameters, Builtins } from "../builtins.js";
31
33
  import { VectorExpr } from "./vector.js";
32
34
  import { MatrixExpr } from "./matrix.js";
33
35
  /** A factory function to help build `Expr` from AST.
@@ -141,11 +143,12 @@ export function from(value, type) {
141
143
  // pointer to user code (issue #204).
142
144
  return ensure_source_map(() => {
143
145
  const { inputs, output } = type;
144
- const input_variables = inputs.map(i => ({
146
+ const input_variables = inputs.map((i, k) => ({
145
147
  ast_type: "Variable",
146
148
  type: i,
147
149
  loc_id: get_location_id(),
148
150
  mutable: false,
151
+ name: parameterNames(value)?.[k + 1],
149
152
  }));
150
153
  const $ = BlockBuilder(output);
151
154
  const input_exprs = input_variables.map(fromAst);
@@ -229,11 +232,12 @@ export function from(value, type) {
229
232
  }
230
233
  return ensure_source_map(() => {
231
234
  const { inputs, output } = type;
232
- const input_variables = inputs.map(i => ({
235
+ const input_variables = inputs.map((i, k) => ({
233
236
  ast_type: "Variable",
234
237
  type: i,
235
238
  loc_id: get_location_id(),
236
239
  mutable: false,
240
+ name: parameterNames(value)?.[k + 1],
237
241
  }));
238
242
  const $ = BlockBuilder(output);
239
243
  const input_exprs = input_variables.map(fromAst);
@@ -327,11 +331,12 @@ export function from(value, type) {
327
331
  }
328
332
  export function func(input_types, output_type, body) {
329
333
  return ensure_source_map(() => {
330
- const parameters = input_types.map(i => ({
334
+ const parameters = input_types.map((i, k) => ({
331
335
  ast_type: "Variable",
332
336
  type: i,
333
337
  loc_id: get_location_id(),
334
338
  mutable: false,
339
+ name: parameterNames(body)?.[k + 1],
335
340
  }));
336
341
  const $ = BlockBuilder(output_type ?? NeverType);
337
342
  let ret = body($, ...parameters.map(fromAst));
@@ -413,11 +418,12 @@ export function func(input_types, output_type, body) {
413
418
  }
414
419
  export function asyncFunction(input_types, output_type, body) {
415
420
  return ensure_source_map(() => {
416
- const parameters = input_types.map(i => ({
421
+ const parameters = input_types.map((i, k) => ({
417
422
  ast_type: "Variable",
418
423
  type: i,
419
424
  loc_id: get_location_id(),
420
425
  mutable: false,
426
+ name: parameterNames(body)?.[k + 1],
421
427
  }));
422
428
  const $ = BlockBuilder(output_type ?? NeverType);
423
429
  let ret = body($, ...parameters.map(fromAst));
@@ -759,6 +765,7 @@ export function matchExpr(variant, handlers) {
759
765
  type: t,
760
766
  loc_id: get_location_id(),
761
767
  mutable: false,
768
+ name: parameterNames(handler)?.[1],
762
769
  };
763
770
  const ast = handler === undefined ? valueOrExprToAstTyped(null, NullType) : block($ => handler($, fromAst(data_variable)))[AstSymbol];
764
771
  out_type = TypeUnion(out_type, ast.type);
@@ -784,12 +791,14 @@ export function tryCatch(try_body, catch_body) {
784
791
  type: StringType,
785
792
  loc_id: get_location_id(),
786
793
  mutable: false,
794
+ name: parameterNames(catch_body)?.[1],
787
795
  };
788
796
  const stack_variable = {
789
797
  ast_type: "Variable",
790
798
  type: ArrayType(StructType({ filename: StringType, line: IntegerType, column: IntegerType })),
791
799
  loc_id: get_location_id(),
792
800
  mutable: false,
801
+ name: parameterNames(catch_body)?.[2],
793
802
  };
794
803
  if (typeof catch_body !== "function") {
795
804
  throw new Error(`tryCatch expected catch_body to be a function, got ${typeof catch_body}`);
@@ -926,6 +935,107 @@ export function is(left, right) {
926
935
  arguments: [Expr.ast(left), rightAst],
927
936
  });
928
937
  }
938
+ /**
939
+ * Calls an East builtin by name — the raw spelling for a builtin the surface
940
+ * has no method for, and the form the codegen printers fall back to for one
941
+ * (`RAW_ONLY`). The python twin is `East.builtin`.
942
+ *
943
+ * @param name - The builtin's IR name, e.g. `"ArrayGetKeys"`
944
+ * @param typeParameters - Its type parameters, in declaration order
945
+ * @param args - Its arguments in IR order — expressions, values, or callbacks
946
+ * @param outputType - The type of the result
947
+ * @returns The `Builtin` expression, typed `outputType`
948
+ * @throws {Error} When `name` is not a builtin, or the type-parameter or
949
+ * argument counts do not match its declaration
950
+ *
951
+ * @example
952
+ * ```ts
953
+ * const size = East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
954
+ * $.return(East.builtin("ArraySize", [IntegerType], [xs], IntegerType));
955
+ * });
956
+ * const compiled = East.compile(size, []);
957
+ * compiled([1n, 2n, 3n]); // 3n
958
+ * ```
959
+ */
960
+ export function builtin(name, typeParameters, args, outputType) {
961
+ const def = Builtins[name];
962
+ if (def === undefined) {
963
+ throw new Error(`Unknown builtin function '${name}'`);
964
+ }
965
+ if (def.type_parameters.length !== typeParameters.length) {
966
+ throw new Error(`Builtin function '${name}' expected ${def.type_parameters.length} type parameters, got ${typeParameters.length}`);
967
+ }
968
+ if (def.inputs.length !== args.length) {
969
+ throw new Error(`Builtin function '${name}' expected ${def.inputs.length} arguments, got ${args.length}`);
970
+ }
971
+ const typeMap = new Map(def.type_parameters.map((param, i) => [param, typeParameters[i]]));
972
+ const argAsts = args.map((arg, i) => {
973
+ const expected = applyTypeParameters(def.inputs[i], typeMap, [], []);
974
+ return valueOrExprToAstTyped(arg, expected);
975
+ });
976
+ return fromAst({
977
+ ast_type: "Builtin",
978
+ type: outputType,
979
+ loc_id: get_location_id(),
980
+ builtin: name,
981
+ type_parameters: typeParameters,
982
+ arguments: argAsts,
983
+ });
984
+ }
985
+ /**
986
+ * Widens a value to a declared supertype explicitly — an `As` node. The
987
+ * builder inserts the same node itself wherever a narrower value meets a
988
+ * wider declared type (a `$.const(x, T)`, a function argument), so this is
989
+ * the spelling for the other positions; the codegen printers spell every
990
+ * IR `As` with it. The python twin is `East.as_`.
991
+ *
992
+ * @param value - The value or expression to widen
993
+ * @param type - The wider type; the value's type must be a subtype of it
994
+ * @returns The value as an expression of `type`
995
+ * @throws {Error} When the value's type is not a subtype of `type`
996
+ *
997
+ * @example
998
+ * ```ts
999
+ * const Shape = VariantType({ circle: FloatType, square: FloatType });
1000
+ * const widen = East.function([FloatType], Shape, ($, r) => {
1001
+ * $.return(East.as(East.value(variant("circle", r)), Shape));
1002
+ * });
1003
+ * const compiled = East.compile(widen, []);
1004
+ * compiled(2.0); // variant("circle", 2.0)
1005
+ * ```
1006
+ */
1007
+ export function as(value, type) {
1008
+ const ast = valueOrExprToAstTyped(value, type);
1009
+ return fromAst({
1010
+ ast_type: "As",
1011
+ type,
1012
+ loc_id: get_location_id(),
1013
+ value: ast,
1014
+ });
1015
+ }
1016
+ /**
1017
+ * Wraps a value or expression of a recursive type's node type in the
1018
+ * recursive type — a `WrapRecursive` node; {@link RecursiveExpr.unwrap} is
1019
+ * its inverse. The python twin is `East.wrap_recursive`.
1020
+ *
1021
+ * @param value - The value or expression of the wrapper's node type
1022
+ * @param type - The recursive type to wrap it in
1023
+ * @returns A `RecursiveExpr` of `type`
1024
+ *
1025
+ * @example
1026
+ * ```ts
1027
+ * const ListType = RecursiveType(self => VariantType({ nil: NullType, cons: StructType({ head: IntegerType, tail: self }) }));
1028
+ * const singleton = East.function([IntegerType], ListType, ($, x) => {
1029
+ * const nil = $.const(East.wrapRecursive(variant("nil", null), ListType));
1030
+ * $.return(East.wrapRecursive(variant("cons", { head: x, tail: nil }), ListType));
1031
+ * });
1032
+ * const compiled = East.compile(singleton, []);
1033
+ * compiled(1n); // variant("cons", { head: 1n, tail: variant("nil", null) })
1034
+ * ```
1035
+ */
1036
+ export function wrapRecursive(value, type) {
1037
+ return RecursiveExpr.wrap(value, type, fromAst);
1038
+ }
929
1039
  /** Print a value as a string. */
930
1040
  export function print(value) {
931
1041
  const valueAst = Expr.ast(value);
@@ -1009,6 +1119,42 @@ export function invertPatch(patch, type) {
1009
1119
  arguments: [patchAst],
1010
1120
  });
1011
1121
  }
1122
+ /**
1123
+ * The brand every declaration handle carries — a registered symbol, so a
1124
+ * handle built by any copy of `@elaraai/east` in the process is recognised.
1125
+ */
1126
+ export const PLATFORM_DECLARATION = Symbol.for("elaraai.east.platformDeclaration");
1127
+ /**
1128
+ * Whether `value` is a platform declaration handle — what `East.platform`,
1129
+ * `East.asyncPlatform`, `East.genericPlatform` and `East.asyncGenericPlatform`
1130
+ * return.
1131
+ *
1132
+ * @param value - Anything
1133
+ * @returns True for a declaration handle, whose identity fields are then typed
1134
+ *
1135
+ * @example
1136
+ * ```ts
1137
+ * const log = East.platform("log", [StringType], NullType);
1138
+ * isPlatformDeclaration(log); // true
1139
+ * log.name; // "log"
1140
+ * ```
1141
+ */
1142
+ export function isPlatformDeclaration(value) {
1143
+ return typeof value === "function" && value[PLATFORM_DECLARATION] === true;
1144
+ }
1145
+ /** Stamps a handle with its identity: the brand, and the declaration fields as own properties. */
1146
+ function brandDeclaration(fn, declaration) {
1147
+ Object.defineProperty(fn, PLATFORM_DECLARATION, { value: true });
1148
+ // a function's `name` is configurable: the handle's is the platform function's, not `fn`
1149
+ Object.defineProperty(fn, "name", { value: declaration.name, configurable: true });
1150
+ Object.defineProperty(fn, "inputs", { value: declaration.inputs, enumerable: true });
1151
+ Object.defineProperty(fn, "output", { value: declaration.output, enumerable: true });
1152
+ Object.defineProperty(fn, "async", { value: declaration.async, enumerable: true });
1153
+ Object.defineProperty(fn, "optional", { value: declaration.optional, enumerable: true });
1154
+ if (declaration.typeParameters !== undefined) {
1155
+ Object.defineProperty(fn, "typeParameters", { value: declaration.typeParameters, enumerable: true });
1156
+ }
1157
+ }
1012
1158
  /** Create a callable helper to invoke a synchronous platform function.
1013
1159
  *
1014
1160
  * Platform functions provide access to external capabilities (logging, I/O, database access, etc.)
@@ -1110,6 +1256,7 @@ export function platform(name, input_types, output_type, options = {}) {
1110
1256
  };
1111
1257
  }
1112
1258
  };
1259
+ brandDeclaration(fn, { name, inputs: input_types, output: output_type, async: false, optional: isOptional });
1113
1260
  return fn;
1114
1261
  }
1115
1262
  /** Create a callable helper to invoke an asynchronous platform function.
@@ -1203,6 +1350,7 @@ export function asyncPlatform(name, input_types, output_type, options = {}) {
1203
1350
  };
1204
1351
  }
1205
1352
  };
1353
+ brandDeclaration(fn, { name, inputs: input_types, output: output_type, async: true, optional: isOptional });
1206
1354
  return fn;
1207
1355
  }
1208
1356
  // Runtime type substitution function
@@ -1410,6 +1558,7 @@ export function genericPlatform(name, typeParams, inputs, output, options = {})
1410
1558
  fn: factory,
1411
1559
  };
1412
1560
  };
1561
+ brandDeclaration(fn, { name, inputs, output, async: false, optional: isOptional, typeParameters: typeParams });
1413
1562
  return fn;
1414
1563
  }
1415
1564
  /** Create a callable helper to invoke an asynchronous generic (polymorphic) platform function.
@@ -1548,6 +1697,7 @@ export function asyncGenericPlatform(name, typeParams, inputs, output, options =
1548
1697
  fn: factory,
1549
1698
  };
1550
1699
  };
1700
+ brandDeclaration(fn, { name, inputs, output, async: true, optional: isOptional, typeParameters: typeParams });
1551
1701
  return fn;
1552
1702
  }
1553
1703
  export const BlockBuilder = (return_type) => {
@@ -1584,6 +1734,7 @@ export const BlockBuilder = (return_type) => {
1584
1734
  type: type ?? ast.type,
1585
1735
  loc_id: get_location_id(),
1586
1736
  mutable: false,
1737
+ name: bindingNameAt(get_location()) ?? undefined,
1587
1738
  };
1588
1739
  statements.push({
1589
1740
  ast_type: "Let",
@@ -1613,6 +1764,7 @@ export const BlockBuilder = (return_type) => {
1613
1764
  type: type ?? ast.type,
1614
1765
  loc_id: get_location_id(),
1615
1766
  mutable: true,
1767
+ name: bindingNameAt(get_location()) ?? undefined,
1616
1768
  };
1617
1769
  statements.push({
1618
1770
  ast_type: "Let",
@@ -1764,6 +1916,7 @@ export const BlockBuilder = (return_type) => {
1764
1916
  type: t,
1765
1917
  loc_id: get_location_id(),
1766
1918
  mutable: false,
1919
+ name: parameterNames(f)?.[1],
1767
1920
  };
1768
1921
  if (f === undefined) {
1769
1922
  cases_out[k] = { variable: data_variable, body: { ast_type: "Value", type: NullType, loc_id: get_location_id(), value: null } };
@@ -1874,6 +2027,7 @@ export const BlockBuilder = (return_type) => {
1874
2027
  type: Expr.type(collection).value,
1875
2028
  loc_id: get_location_id(),
1876
2029
  mutable: false,
2030
+ name: parameterNames(body)?.[1],
1877
2031
  };
1878
2032
  const value = fromAst(value_variable);
1879
2033
  const key_variable = {
@@ -1881,6 +2035,7 @@ export const BlockBuilder = (return_type) => {
1881
2035
  type: IntegerType,
1882
2036
  loc_id: get_location_id(),
1883
2037
  mutable: false,
2038
+ name: parameterNames(body)?.[2],
1884
2039
  };
1885
2040
  const key = fromAst(key_variable);
1886
2041
  const label = { loc_id: get_location_id() };
@@ -1930,6 +2085,7 @@ export const BlockBuilder = (return_type) => {
1930
2085
  type: Expr.type(collection).key,
1931
2086
  loc_id: get_location_id(),
1932
2087
  mutable: false,
2088
+ name: parameterNames(body)?.[1],
1933
2089
  };
1934
2090
  const key = fromAst(key_variable);
1935
2091
  const label = { loc_id: get_location_id() };
@@ -1978,6 +2134,7 @@ export const BlockBuilder = (return_type) => {
1978
2134
  type: Expr.type(collection).value,
1979
2135
  loc_id: get_location_id(),
1980
2136
  mutable: false,
2137
+ name: parameterNames(body)?.[1],
1981
2138
  };
1982
2139
  const value = fromAst(value_variable);
1983
2140
  const key_variable = {
@@ -1985,6 +2142,7 @@ export const BlockBuilder = (return_type) => {
1985
2142
  type: Expr.type(collection).key,
1986
2143
  loc_id: get_location_id(),
1987
2144
  mutable: false,
2145
+ name: parameterNames(body)?.[2],
1988
2146
  };
1989
2147
  const key = fromAst(key_variable);
1990
2148
  const label = { loc_id: get_location_id() };
@@ -2207,6 +2365,12 @@ class TryCatchExpr extends NullExpr {
2207
2365
  }
2208
2366
  this.catchCalled = true;
2209
2367
  const $ = BlockBuilder(this.return_type);
2368
+ // the handler names the catch variables (#639): `($, message, stack) => …`
2369
+ const names = parameterNames(body);
2370
+ if (names?.[1] !== undefined)
2371
+ this.message_variable.name = names[1];
2372
+ if (names?.[2] !== undefined)
2373
+ this.stack_variable.name = names[2];
2210
2374
  const ret = body($, fromAst(this.message_variable), fromAst(this.stack_variable));
2211
2375
  const stmts = $.statements;
2212
2376
  if (ret !== undefined) {