@lionlang/core 0.1.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.
Files changed (119) hide show
  1. package/README.md +15 -0
  2. package/dist/environment-k2Uf6VVc.d.mts +25 -0
  3. package/dist/environment-k2Uf6VVc.d.mts.map +1 -0
  4. package/dist/errors/evaluation.d.mts +2 -0
  5. package/dist/errors/evaluation.mjs +9 -0
  6. package/dist/errors/evaluation.mjs.map +1 -0
  7. package/dist/evaluate-D7ODMrbg.mjs +84 -0
  8. package/dist/evaluate-D7ODMrbg.mjs.map +1 -0
  9. package/dist/evaluation/base-forms/array.d.mts +11 -0
  10. package/dist/evaluation/base-forms/array.d.mts.map +1 -0
  11. package/dist/evaluation/base-forms/array.mjs +2 -0
  12. package/dist/evaluation/base-forms/primitive.d.mts +10 -0
  13. package/dist/evaluation/base-forms/primitive.d.mts.map +1 -0
  14. package/dist/evaluation/base-forms/primitive.mjs +10 -0
  15. package/dist/evaluation/base-forms/primitive.mjs.map +1 -0
  16. package/dist/evaluation/base-forms/record.d.mts +13 -0
  17. package/dist/evaluation/base-forms/record.d.mts.map +1 -0
  18. package/dist/evaluation/base-forms/record.mjs +2 -0
  19. package/dist/evaluation/environment.d.mts +12 -0
  20. package/dist/evaluation/environment.d.mts.map +1 -0
  21. package/dist/evaluation/environment.mjs +19 -0
  22. package/dist/evaluation/environment.mjs.map +1 -0
  23. package/dist/evaluation/evaluate.d.mts +12 -0
  24. package/dist/evaluation/evaluate.d.mts.map +1 -0
  25. package/dist/evaluation/evaluate.mjs +2 -0
  26. package/dist/evaluation/special-forms/begin.d.mts +11 -0
  27. package/dist/evaluation/special-forms/begin.d.mts.map +1 -0
  28. package/dist/evaluation/special-forms/begin.mjs +2 -0
  29. package/dist/evaluation/special-forms/cond.d.mts +11 -0
  30. package/dist/evaluation/special-forms/cond.d.mts.map +1 -0
  31. package/dist/evaluation/special-forms/cond.mjs +2 -0
  32. package/dist/evaluation/special-forms/define.d.mts +11 -0
  33. package/dist/evaluation/special-forms/define.d.mts.map +1 -0
  34. package/dist/evaluation/special-forms/define.mjs +2 -0
  35. package/dist/evaluation/special-forms/eval.d.mts +11 -0
  36. package/dist/evaluation/special-forms/eval.d.mts.map +1 -0
  37. package/dist/evaluation/special-forms/eval.mjs +2 -0
  38. package/dist/evaluation/special-forms/function.d.mts +11 -0
  39. package/dist/evaluation/special-forms/function.d.mts.map +1 -0
  40. package/dist/evaluation/special-forms/function.mjs +2 -0
  41. package/dist/evaluation/special-forms/lambda.d.mts +11 -0
  42. package/dist/evaluation/special-forms/lambda.d.mts.map +1 -0
  43. package/dist/evaluation/special-forms/lambda.mjs +2 -0
  44. package/dist/evaluation/special-forms/match.d.mts +11 -0
  45. package/dist/evaluation/special-forms/match.d.mts.map +1 -0
  46. package/dist/evaluation/special-forms/match.mjs +2 -0
  47. package/dist/evaluation/special-forms/quote.d.mts +11 -0
  48. package/dist/evaluation/special-forms/quote.d.mts.map +1 -0
  49. package/dist/evaluation/special-forms/quote.mjs +7 -0
  50. package/dist/evaluation/special-forms/quote.mjs.map +1 -0
  51. package/dist/evaluation-AblffSQw.d.mts +17 -0
  52. package/dist/evaluation-AblffSQw.d.mts.map +1 -0
  53. package/dist/evaluation-EqzK8tQV.d.mts +13 -0
  54. package/dist/evaluation-EqzK8tQV.d.mts.map +1 -0
  55. package/dist/evaluation-uwZSKxIf.d.mts +10 -0
  56. package/dist/evaluation-uwZSKxIf.d.mts.map +1 -0
  57. package/dist/json-primitive-DUaaoNff.d.mts +8 -0
  58. package/dist/json-primitive-DUaaoNff.d.mts.map +1 -0
  59. package/dist/lion-expression-6Y3itx9l.d.mts +16 -0
  60. package/dist/lion-expression-6Y3itx9l.d.mts.map +1 -0
  61. package/dist/modules/array.d.mts +19 -0
  62. package/dist/modules/array.d.mts.map +1 -0
  63. package/dist/modules/array.mjs +23 -0
  64. package/dist/modules/array.mjs.map +1 -0
  65. package/dist/modules/boolean.d.mts +17 -0
  66. package/dist/modules/boolean.d.mts.map +1 -0
  67. package/dist/modules/boolean.mjs +17 -0
  68. package/dist/modules/boolean.mjs.map +1 -0
  69. package/dist/modules/console.d.mts +10 -0
  70. package/dist/modules/console.d.mts.map +1 -0
  71. package/dist/modules/console.mjs +10 -0
  72. package/dist/modules/console.mjs.map +1 -0
  73. package/dist/modules/func.d.mts +13 -0
  74. package/dist/modules/func.d.mts.map +1 -0
  75. package/dist/modules/func.mjs +28 -0
  76. package/dist/modules/func.mjs.map +1 -0
  77. package/dist/modules/index.d.mts +8 -0
  78. package/dist/modules/index.d.mts.map +1 -0
  79. package/dist/modules/index.mjs +31 -0
  80. package/dist/modules/index.mjs.map +1 -0
  81. package/dist/modules/lib/shared.d.mts +9 -0
  82. package/dist/modules/lib/shared.d.mts.map +1 -0
  83. package/dist/modules/lib/shared.mjs +7 -0
  84. package/dist/modules/lib/shared.mjs.map +1 -0
  85. package/dist/modules/number.d.mts +19 -0
  86. package/dist/modules/number.d.mts.map +1 -0
  87. package/dist/modules/number.mjs +19 -0
  88. package/dist/modules/number.mjs.map +1 -0
  89. package/dist/modules/object.d.mts +86 -0
  90. package/dist/modules/object.d.mts.map +1 -0
  91. package/dist/modules/object.mjs +154 -0
  92. package/dist/modules/object.mjs.map +1 -0
  93. package/dist/modules/string.d.mts +18 -0
  94. package/dist/modules/string.d.mts.map +1 -0
  95. package/dist/modules/string.mjs +17 -0
  96. package/dist/modules/string.mjs.map +1 -0
  97. package/dist/modules/value.d.mts +19 -0
  98. package/dist/modules/value.d.mts.map +1 -0
  99. package/dist/modules/value.mjs +19 -0
  100. package/dist/modules/value.mjs.map +1 -0
  101. package/dist/schemas/environment.d.mts +2 -0
  102. package/dist/schemas/environment.mjs +14 -0
  103. package/dist/schemas/environment.mjs.map +1 -0
  104. package/dist/schemas/evaluation.d.mts +24 -0
  105. package/dist/schemas/evaluation.d.mts.map +1 -0
  106. package/dist/schemas/evaluation.mjs +38 -0
  107. package/dist/schemas/evaluation.mjs.map +1 -0
  108. package/dist/schemas/json-primitive.d.mts +2 -0
  109. package/dist/schemas/json-primitive.mjs +7 -0
  110. package/dist/schemas/json-primitive.mjs.map +1 -0
  111. package/dist/schemas/lion-expression.d.mts +2 -0
  112. package/dist/schemas/lion-expression.mjs +14 -0
  113. package/dist/schemas/lion-expression.mjs.map +1 -0
  114. package/dist/services/evaluation.d.mts +2 -0
  115. package/dist/services/evaluation.mjs +8 -0
  116. package/dist/services/evaluation.mjs.map +1 -0
  117. package/dist/types/evaluation.d.mts +2 -0
  118. package/dist/types/evaluation.mjs +1 -0
  119. package/package.json +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.mjs","names":[],"sources":["../../src/modules/object.ts"],"sourcesContent":["import { Effect, flow, Record, Schema } from \"effect\";\n\nclass NotAnObjectError extends Schema.TaggedError<NotAnObjectError>(\n \"NotAnObjectError\"\n)(\"NotAnObjectError\", { actual: Schema.Unknown }) {}\n\nclass KeyNotFoundError extends Schema.TaggedError<KeyNotFoundError>(\n \"KeyNotFoundError\"\n)(\"KeyNotFoundError\", { key: Schema.String }) {}\n\nclass NotAFunctionError extends Schema.TaggedError<NotAFunctionError>(\n \"NotAFunctionError\"\n)(\"NotAFunctionError\", { key: Schema.String, actual: Schema.Unknown }) {}\n\nclass NotAConstructorError extends Schema.TaggedError<NotAConstructorError>(\n \"NotAConstructorError\"\n)(\"NotAConstructorError\", { actual: Schema.Unknown }) {}\n\nclass PathTraversalError extends Schema.TaggedError<PathTraversalError>(\n \"PathTraversalError\"\n)(\"PathTraversalError\", {\n path: Schema.String,\n key: Schema.String,\n current: Schema.Unknown,\n}) {}\n\nclass EmptyPathError extends Schema.TaggedError<EmptyPathError>(\n \"EmptyPathError\"\n)(\"EmptyPathError\", { path: Schema.String }) {}\n\nclass MethodNotFoundError extends Schema.TaggedError<MethodNotFoundError>(\n \"MethodNotFoundError\"\n)(\"MethodNotFoundError\", {\n path: Schema.String,\n methodKey: Schema.String,\n actual: Schema.Unknown,\n}) {}\n\nclass IndexOutOfBoundsError extends Schema.TaggedError<IndexOutOfBoundsError>(\n \"IndexOutOfBoundsError\"\n)(\"IndexOutOfBoundsError\", {\n index: Schema.Number,\n length: Schema.Number,\n}) {}\n\nclass NotAnArrayError extends Schema.TaggedError<NotAnArrayError>(\n \"NotAnArrayError\"\n)(\"NotAnArrayError\", { actual: Schema.Unknown }) {}\n\nclass InvalidPathError extends Schema.TaggedError<InvalidPathError>(\n \"InvalidPathError\"\n)(\"InvalidPathError\", { path: Schema.Unknown }) {}\n\nconst NUMERIC_KEY_REGEX = /^\\d+$/;\n\nconst isNumericKey = (key: string): boolean => NUMERIC_KEY_REGEX.test(key);\n\nconst getValueAtKey = (current: unknown, key: string): unknown => {\n if (Array.isArray(current) && isNumericKey(key)) {\n return current[Number.parseInt(key, 10)];\n }\n return (current as Record<string, unknown>)[key];\n};\n\nconst validateKeyExists = (current: unknown, key: string) =>\n Effect.gen(function* () {\n if (!Array.isArray(current) && isNumericKey(key)) {\n return yield* new NotAnArrayError({ actual: current });\n }\n const index = isNumericKey(key) ? Number.parseInt(key, 10) : -1;\n if (Array.isArray(current) && index >= 0) {\n if (index >= current.length) {\n return yield* new IndexOutOfBoundsError({\n index,\n length: current.length,\n });\n }\n } else if (!(key in (current as object))) {\n return yield* new KeyNotFoundError({ key });\n }\n });\n\nconst traversePath = (\n obj: object,\n path: string,\n keys: string[]\n): Effect.Effect<object, PathTraversalError> =>\n Effect.gen(function* () {\n let current: unknown = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n const key = keys[i];\n if (key === undefined) {\n return yield* new PathTraversalError({\n path,\n key: String(i),\n current,\n });\n }\n if (typeof current !== \"object\" || current === null) {\n return yield* new PathTraversalError({\n path,\n key: String(key),\n current,\n });\n }\n if (!(key in current)) {\n return yield* new PathTraversalError({\n path,\n key: String(key),\n current,\n });\n }\n current = getValueAtKey(current, key);\n }\n return current as object;\n });\n\nconst getMethodFromObject = (\n obj: object,\n methodKey: string,\n path: string\n): Effect.Effect<\n (...args: unknown[]) => unknown,\n EmptyPathError | PathTraversalError | MethodNotFoundError\n> =>\n Effect.gen(function* () {\n if (methodKey === undefined || methodKey === \"\") {\n return yield* new EmptyPathError({ path });\n }\n if (typeof obj !== \"object\" || obj === null) {\n return yield* new PathTraversalError({\n path,\n key: String(methodKey),\n current: obj,\n });\n }\n const method = (obj as Record<string, unknown>)[methodKey];\n if (typeof method !== \"function\") {\n return yield* new MethodNotFoundError({\n path,\n methodKey: String(methodKey),\n actual: method,\n });\n }\n return method as (...args: unknown[]) => unknown;\n });\n\nexport const module = {\n symbol: Symbol(\"object\"),\n\n get: (obj: unknown, key: string) =>\n Effect.gen(function* () {\n if (typeof obj !== \"object\" || obj === null) {\n return yield* new NotAnObjectError({ actual: obj });\n }\n return (obj as Record<string, unknown>)[key];\n }),\n\n \"get-path\": (obj: unknown, path: string) =>\n Effect.gen(function* () {\n if (typeof obj !== \"object\" || obj === null) {\n return yield* new NotAnObjectError({ actual: obj });\n }\n if (typeof path !== \"string\") {\n return yield* new InvalidPathError({ path });\n }\n const keys = path.split(\".\");\n let current: unknown = obj;\n for (const key of keys) {\n if (typeof current !== \"object\" || current === null) {\n return yield* new PathTraversalError({\n path,\n key: String(key),\n current,\n });\n }\n yield* validateKeyExists(current, key);\n current = getValueAtKey(current, key);\n }\n return current;\n }),\n\n \"json-stringify\": (\n obj: unknown,\n replacer: Parameters<typeof JSON.stringify>[1],\n space: number\n ) =>\n Effect.gen(function* () {\n if (typeof obj !== \"object\" || obj === null) {\n return yield* new NotAnObjectError({ actual: obj });\n }\n return JSON.stringify(obj, replacer, space);\n }),\n\n keys: flow(\n (obj: unknown) => obj,\n Schema.decodeUnknown(\n Schema.Record({ key: Schema.String, value: Schema.Unknown })\n ),\n Effect.map(Record.keys)\n ),\n\n values: flow(\n (obj: unknown) => obj,\n Schema.decodeUnknown(\n Schema.Record({ key: Schema.String, value: Schema.Unknown })\n ),\n Effect.map(Record.values)\n ),\n\n \"new\": (classRef: unknown, ...args: unknown[]) =>\n Effect.gen(function* () {\n if (typeof classRef !== \"function\") {\n return yield* new NotAConstructorError({ actual: classRef });\n }\n return new (classRef as new (...args: unknown[]) => unknown)(\n ...(args as unknown[])\n );\n }),\n\n \"get-method\": (obj: unknown, key: unknown) =>\n Effect.gen(function* () {\n if (typeof obj !== \"object\" || obj === null) {\n return yield* new NotAnObjectError({ actual: obj });\n }\n const method = (obj as Record<string, unknown>)[key as string];\n if (typeof method !== \"function\") {\n return yield* new NotAFunctionError({\n key: key as string,\n actual: method,\n });\n }\n return method.bind(obj);\n }),\n\n // FIXME: technically any value can have a method through its prototype chain\n \"call-method\": (obj: unknown, key: unknown, ...args: unknown[]) =>\n Effect.gen(function* () {\n const method = (obj as Record<string, unknown>)[key as string];\n if (typeof method !== \"function\") {\n return yield* new NotAFunctionError({\n key: key as string,\n actual: method,\n });\n }\n return method.apply(obj, args);\n }),\n\n \"get-method-path\": (obj: unknown, path: string) =>\n Effect.gen(function* () {\n if (typeof obj !== \"object\" || obj === null) {\n return yield* new NotAnObjectError({ actual: obj });\n }\n if (typeof path !== \"string\") {\n return yield* new InvalidPathError({ path });\n }\n const keys = path.split(\".\");\n const targetObj = yield* traversePath(obj, path, keys);\n const methodKey = keys.at(-1) ?? \"\";\n const method = yield* getMethodFromObject(targetObj, methodKey, path);\n return method.bind(targetObj);\n }),\n\n \"call-method-path\": (obj: unknown, path: string, ...args: unknown[]) =>\n Effect.gen(function* () {\n if (typeof obj !== \"object\" || obj === null) {\n return yield* new NotAnObjectError({ actual: obj });\n }\n if (typeof path !== \"string\") {\n return yield* new InvalidPathError({ path });\n }\n const keys = (path as string).split(\".\");\n const targetObj = yield* traversePath(obj, path as string, keys);\n const methodKey = keys.at(-1) ?? \"\";\n const method = yield* getMethodFromObject(\n targetObj,\n methodKey,\n path as string\n );\n return method.apply(targetObj, args);\n }),\n};\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Effect } from "effect";
2
+ import * as _$effect_ParseResult0 from "effect/ParseResult";
3
+ import * as _$effect_Option0 from "effect/Option";
4
+
5
+ //#region src/modules/string.d.ts
6
+ declare const module: {
7
+ symbol: symbol;
8
+ "equals?": (a: unknown, b: unknown) => Effect.Effect<boolean, _$effect_ParseResult0.ParseError, never>;
9
+ length: (u: unknown) => Effect.Effect<number, _$effect_ParseResult0.ParseError, never>;
10
+ concat: (a: unknown, b: unknown) => Effect.Effect<string, _$effect_ParseResult0.ParseError, never>;
11
+ startsWith: (a: unknown, b: unknown) => Effect.Effect<boolean, _$effect_ParseResult0.ParseError, never>;
12
+ endsWith: (a: unknown, b: unknown) => Effect.Effect<boolean, _$effect_ParseResult0.ParseError, never>;
13
+ includes: (a: unknown, b: unknown) => Effect.Effect<boolean, _$effect_ParseResult0.ParseError, never>;
14
+ indexOf: (a: unknown, b: unknown) => Effect.Effect<_$effect_Option0.Option<number>, _$effect_ParseResult0.ParseError, never>;
15
+ };
16
+ //#endregion
17
+ export { module };
18
+ //# sourceMappingURL=string.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.d.mts","names":[],"sources":["../../src/modules/string.ts"],"mappings":";;;;;cAGa,MAAA;;gEAwCZ,qBAAA,CAAA,UAAA"}
@@ -0,0 +1,17 @@
1
+ import { decode } from "./lib/shared.mjs";
2
+ import { Effect, Schema, String, flow } from "effect";
3
+ //#region src/modules/string.ts
4
+ const module = {
5
+ symbol: Symbol("string"),
6
+ "equals?": flow((a, b) => [a, b], decode(Schema.Tuple(Schema.String, Schema.String)), Effect.map(([a, b]) => a === b)),
7
+ length: flow(decode(Schema.String), Effect.map(String.length)),
8
+ concat: flow((a, b) => [a, b], decode(Schema.Tuple(Schema.String, Schema.String)), Effect.map(([a, b]) => String.concat(a, b))),
9
+ startsWith: flow((a, b) => [a, b], decode(Schema.Tuple(Schema.String, Schema.String)), Effect.map(([a, b]) => String.startsWith(a)(b))),
10
+ endsWith: flow((a, b) => [a, b], decode(Schema.Tuple(Schema.String, Schema.String)), Effect.map(([a, b]) => String.endsWith(a)(b))),
11
+ includes: flow((a, b) => [a, b], decode(Schema.Tuple(Schema.String, Schema.String)), Effect.map(([a, b]) => String.includes(a)(b))),
12
+ indexOf: flow((a, b) => [a, b], decode(Schema.Tuple(Schema.String, Schema.String)), Effect.map(([a, b]) => String.indexOf(a)(b)))
13
+ };
14
+ //#endregion
15
+ export { module };
16
+
17
+ //# sourceMappingURL=string.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.mjs","names":["Str"],"sources":["../../src/modules/string.ts"],"sourcesContent":["import { Effect, flow, Schema, String as Str } from \"effect\";\nimport { decode } from \"@/modules/lib/shared\";\n\nexport const module = {\n symbol: Symbol(\"string\"),\n\n \"equals?\": flow(\n (a: unknown, b: unknown) => [a, b],\n decode(Schema.Tuple(Schema.String, Schema.String)),\n Effect.map(([a, b]) => a === b)\n ),\n\n length: flow(decode(Schema.String), Effect.map(Str.length)),\n\n concat: flow(\n (a: unknown, b: unknown) => [a, b],\n decode(Schema.Tuple(Schema.String, Schema.String)),\n Effect.map(([a, b]) => Str.concat(a, b))\n ),\n\n startsWith: flow(\n (a: unknown, b: unknown) => [a, b],\n decode(Schema.Tuple(Schema.String, Schema.String)),\n Effect.map(([a, b]) => Str.startsWith(a)(b))\n ),\n\n endsWith: flow(\n (a: unknown, b: unknown) => [a, b],\n decode(Schema.Tuple(Schema.String, Schema.String)),\n Effect.map(([a, b]) => Str.endsWith(a)(b))\n ),\n\n includes: flow(\n (a: unknown, b: unknown) => [a, b],\n decode(Schema.Tuple(Schema.String, Schema.String)),\n Effect.map(([a, b]) => Str.includes(a)(b))\n ),\n\n indexOf: flow(\n (a: unknown, b: unknown) => [a, b],\n decode(Schema.Tuple(Schema.String, Schema.String)),\n Effect.map(([a, b]) => Str.indexOf(a)(b))\n ),\n};\n"],"mappings":";;;AAGA,MAAa,SAAS;CACpB,QAAQ,OAAO,SAAS;CAExB,WAAW,MACR,GAAY,MAAe,CAAC,GAAG,EAAE,EAClC,OAAO,OAAO,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,EAClD,OAAO,KAAK,CAAC,GAAG,OAAO,MAAM,EAAE,CAChC;CAED,QAAQ,KAAK,OAAO,OAAO,OAAO,EAAE,OAAO,IAAIA,OAAI,OAAO,CAAC;CAE3D,QAAQ,MACL,GAAY,MAAe,CAAC,GAAG,EAAE,EAClC,OAAO,OAAO,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,EAClD,OAAO,KAAK,CAAC,GAAG,OAAOA,OAAI,OAAO,GAAG,EAAE,CAAC,CACzC;CAED,YAAY,MACT,GAAY,MAAe,CAAC,GAAG,EAAE,EAClC,OAAO,OAAO,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,EAClD,OAAO,KAAK,CAAC,GAAG,OAAOA,OAAI,WAAW,EAAE,CAAC,EAAE,CAAC,CAC7C;CAED,UAAU,MACP,GAAY,MAAe,CAAC,GAAG,EAAE,EAClC,OAAO,OAAO,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,EAClD,OAAO,KAAK,CAAC,GAAG,OAAOA,OAAI,SAAS,EAAE,CAAC,EAAE,CAAC,CAC3C;CAED,UAAU,MACP,GAAY,MAAe,CAAC,GAAG,EAAE,EAClC,OAAO,OAAO,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,EAClD,OAAO,KAAK,CAAC,GAAG,OAAOA,OAAI,SAAS,EAAE,CAAC,EAAE,CAAC,CAC3C;CAED,SAAS,MACN,GAAY,MAAe,CAAC,GAAG,EAAE,EAClC,OAAO,OAAO,MAAM,OAAO,QAAQ,OAAO,OAAO,CAAC,EAClD,OAAO,KAAK,CAAC,GAAG,OAAOA,OAAI,QAAQ,EAAE,CAAC,EAAE,CAAC,CAC1C;CACF"}
@@ -0,0 +1,19 @@
1
+ import { Effect } from "effect";
2
+
3
+ //#region src/modules/value.d.ts
4
+ declare const module: {
5
+ symbol: symbol;
6
+ "function?": (a: unknown) => Effect.Effect<boolean, never, never>;
7
+ "number?": (a: unknown) => Effect.Effect<boolean, never, never>;
8
+ "string?": (a: unknown) => Effect.Effect<boolean, never, never>;
9
+ "boolean?": (a: unknown) => Effect.Effect<boolean, never, never>;
10
+ "object?": (a: unknown) => Effect.Effect<boolean, never, never>;
11
+ "array?": (a: unknown) => Effect.Effect<boolean, never, never>;
12
+ "null?": (a: unknown) => Effect.Effect<boolean, never, never>;
13
+ "undefined?": (a: unknown) => Effect.Effect<boolean, never, never>;
14
+ "symbol?": (a: unknown) => Effect.Effect<boolean, never, never>;
15
+ identity: (x: unknown) => Effect.Effect<unknown, never, never>;
16
+ };
17
+ //#endregion
18
+ export { module };
19
+ //# sourceMappingURL=value.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.d.mts","names":[],"sources":["../../src/modules/value.ts"],"mappings":";;;cAEa,MAAA;;+BAGa,MAAA,CAAA,MAAA;6BAEF,MAAA,CAAA,MAAA;6BAEA,MAAA,CAAA,MAAA;8BAEC,MAAA,CAAA,MAAA;6BAED,MAAA,CAAA,MAAA;4BAGD,MAAA,CAAA,MAAA;2BAED,MAAA,CAAA,MAAA;gCAEK,MAAA,CAAA,MAAA;6BAEH,MAAA,CAAA,MAAA;4BAED,MAAA,CAAA,MAAA;AAAA"}
@@ -0,0 +1,19 @@
1
+ import { Effect } from "effect";
2
+ //#region src/modules/value.ts
3
+ const module = {
4
+ symbol: Symbol("value"),
5
+ "function?": (a) => Effect.succeed(typeof a === "function"),
6
+ "number?": (a) => Effect.succeed(typeof a === "number"),
7
+ "string?": (a) => Effect.succeed(typeof a === "string"),
8
+ "boolean?": (a) => Effect.succeed(typeof a === "boolean"),
9
+ "object?": (a) => Effect.succeed(typeof a === "object" && a !== null),
10
+ "array?": (a) => Effect.succeed(Array.isArray(a)),
11
+ "null?": (a) => Effect.succeed(a === null),
12
+ "undefined?": (a) => Effect.succeed(a === void 0),
13
+ "symbol?": (a) => Effect.succeed(typeof a === "symbol"),
14
+ identity: (x) => Effect.succeed(x)
15
+ };
16
+ //#endregion
17
+ export { module };
18
+
19
+ //# sourceMappingURL=value.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.mjs","names":[],"sources":["../../src/modules/value.ts"],"sourcesContent":["import { Effect } from \"effect\";\n\nexport const module = {\n symbol: Symbol(\"value\"),\n\n \"function?\": (a: unknown) => Effect.succeed(typeof a === \"function\"),\n\n \"number?\": (a: unknown) => Effect.succeed(typeof a === \"number\"),\n\n \"string?\": (a: unknown) => Effect.succeed(typeof a === \"string\"),\n\n \"boolean?\": (a: unknown) => Effect.succeed(typeof a === \"boolean\"),\n\n \"object?\": (a: unknown) =>\n Effect.succeed(typeof a === \"object\" && a !== null),\n\n \"array?\": (a: unknown) => Effect.succeed(Array.isArray(a)),\n\n \"null?\": (a: unknown) => Effect.succeed(a === null),\n\n \"undefined?\": (a: unknown) => Effect.succeed(a === undefined),\n\n \"symbol?\": (a: unknown) => Effect.succeed(typeof a === \"symbol\"),\n\n identity: (x: unknown) => Effect.succeed(x),\n};\n"],"mappings":";;AAEA,MAAa,SAAS;CACpB,QAAQ,OAAO,QAAQ;CAEvB,cAAc,MAAe,OAAO,QAAQ,OAAO,MAAM,WAAW;CAEpE,YAAY,MAAe,OAAO,QAAQ,OAAO,MAAM,SAAS;CAEhE,YAAY,MAAe,OAAO,QAAQ,OAAO,MAAM,SAAS;CAEhE,aAAa,MAAe,OAAO,QAAQ,OAAO,MAAM,UAAU;CAElE,YAAY,MACV,OAAO,QAAQ,OAAO,MAAM,YAAY,MAAM,KAAK;CAErD,WAAW,MAAe,OAAO,QAAQ,MAAM,QAAQ,EAAE,CAAC;CAE1D,UAAU,MAAe,OAAO,QAAQ,MAAM,KAAK;CAEnD,eAAe,MAAe,OAAO,QAAQ,MAAM,KAAA,EAAU;CAE7D,YAAY,MAAe,OAAO,QAAQ,OAAO,MAAM,SAAS;CAEhE,WAAW,MAAe,OAAO,QAAQ,EAAE;CAC5C"}
@@ -0,0 +1,2 @@
1
+ import { a as ToplevelEnvironment, i as InnerEnvironmentSchema, n as EnvironmentSchema, o as ToplevelEnvironmentSchema, r as InnerEnvironment, t as Environment } from "../environment-k2Uf6VVc.mjs";
2
+ export { Environment, EnvironmentSchema, InnerEnvironment, InnerEnvironmentSchema, ToplevelEnvironment, ToplevelEnvironmentSchema };
@@ -0,0 +1,14 @@
1
+ import { Ref, Schema } from "effect";
2
+ //#region src/schemas/environment.ts
3
+ const isBindingsRef = (input) => typeof input === "object" && input !== null && Ref.RefTypeId in input;
4
+ const BindingsSchema = Schema.declare(isBindingsRef);
5
+ const ToplevelEnvironmentSchema = Schema.Struct({ bindingsRef: BindingsSchema });
6
+ const EnvironmentSchema = Schema.Union(ToplevelEnvironmentSchema, Schema.suspend(() => InnerEnvironmentSchema));
7
+ const InnerEnvironmentSchema = Schema.Struct({
8
+ bindingsRef: BindingsSchema,
9
+ parent: EnvironmentSchema
10
+ });
11
+ //#endregion
12
+ export { EnvironmentSchema, InnerEnvironmentSchema, ToplevelEnvironmentSchema };
13
+
14
+ //# sourceMappingURL=environment.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.mjs","names":[],"sources":["../../src/schemas/environment.ts"],"sourcesContent":["import { Ref, Schema } from \"effect\";\n\ntype BindingsRef = Ref.Ref<Record<string, unknown>>;\n\nconst isBindingsRef = (input: unknown): input is BindingsRef =>\n typeof input === \"object\" && input !== null && Ref.RefTypeId in input;\n\nconst BindingsSchema: Schema.Schema<BindingsRef> =\n Schema.declare<BindingsRef>(isBindingsRef);\n\nexport interface InnerEnvironment {\n readonly bindingsRef: BindingsRef;\n readonly parent: Environment;\n}\n\nexport type Environment = typeof EnvironmentSchema.Type;\n\nexport type ToplevelEnvironment = typeof ToplevelEnvironmentSchema.Type;\n\nexport const ToplevelEnvironmentSchema = Schema.Struct({\n bindingsRef: BindingsSchema,\n});\n\nexport const EnvironmentSchema = Schema.Union(\n ToplevelEnvironmentSchema,\n Schema.suspend((): Schema.Schema<InnerEnvironment> => InnerEnvironmentSchema)\n);\n\nexport const InnerEnvironmentSchema = Schema.Struct({\n bindingsRef: BindingsSchema,\n parent: EnvironmentSchema,\n});\n"],"mappings":";;AAIA,MAAM,iBAAiB,UACrB,OAAO,UAAU,YAAY,UAAU,QAAQ,IAAI,aAAa;AAElE,MAAM,iBACJ,OAAO,QAAqB,cAAc;AAW5C,MAAa,4BAA4B,OAAO,OAAO,EACrD,aAAa,gBACd,CAAC;AAEF,MAAa,oBAAoB,OAAO,MACtC,2BACA,OAAO,cAA+C,uBAAuB,CAC9E;AAED,MAAa,yBAAyB,OAAO,OAAO;CAClD,aAAa;CACb,QAAQ;CACT,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { t as AssumedExpressionType } from "../lion-expression-6Y3itx9l.mjs";
2
+ import { t as EvaluateResult } from "../evaluation-uwZSKxIf.mjs";
3
+ import { Schema } from "effect";
4
+
5
+ //#region src/schemas/evaluation.d.ts
6
+ type LionFunctionValueType = (...args: unknown[]) => EvaluateResult;
7
+ declare const LionFunctionValueSchema: Schema.declare<LionFunctionValueType, LionFunctionValueType, readonly [], never>;
8
+ declare const FunctionCallFormSchema: Schema.TupleType<readonly [Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>], [Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>]>;
9
+ declare const EvalFormSchema: Schema.Tuple2<Schema.Literal<["eval"]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>;
10
+ declare const QuoteFormSchema: Schema.Tuple2<Schema.Literal<["quote"]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>;
11
+ declare const BeginFormSchema: Schema.TupleType<readonly [Schema.Literal<["begin"]>], [Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>]>;
12
+ declare const ValidIdentifierSchema: Schema.filter<Schema.filter<typeof Schema.String>>;
13
+ declare const DefineFormSchema: Schema.Tuple<[Schema.Literal<["define"]>, Schema.filter<Schema.filter<typeof Schema.String>>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>]>;
14
+ declare const LambdaFormSchema: Schema.Tuple<[Schema.Literal<["lambda"]>, Schema.Array$<Schema.filter<Schema.filter<typeof Schema.String>>>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>]>;
15
+ declare const CondCaseSchema: Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>;
16
+ declare const CondElseCaseSchema: Schema.Tuple2<Schema.Literal<["else"]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>;
17
+ declare const CondFormWithoutElseSchema: Schema.TupleType<readonly [Schema.Literal<["cond"]>, Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>], [Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>]>;
18
+ declare const CondFormWithElseSchema: Schema.TupleType<readonly [Schema.Literal<["cond"]>, Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>], [Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>, Schema.Tuple2<Schema.Literal<["else"]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>]>;
19
+ declare const CondFormSchema: Schema.Union<[Schema.TupleType<readonly [Schema.Literal<["cond"]>, Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>], [Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>]>, Schema.TupleType<readonly [Schema.Literal<["cond"]>, Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>], [Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>, Schema.Tuple2<Schema.Literal<["else"]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>]>]>;
20
+ declare const MatchPatternSchema: Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>;
21
+ declare const MatchFormSchema: Schema.TupleType<readonly [Schema.Literal<["match"]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>], [Schema.Tuple2<Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>>, Schema.Union<[Schema.Union<[typeof Schema.String, typeof Schema.Number, typeof Schema.Boolean, typeof Schema.Null]>, Schema.Array$<Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>, Schema.Record$<Schema.filter<Schema.filter<typeof Schema.String>>, Schema.suspend<AssumedExpressionType, AssumedExpressionType, never>>]>]>;
22
+ //#endregion
23
+ export { BeginFormSchema, CondCaseSchema, CondElseCaseSchema, CondFormSchema, CondFormWithElseSchema, CondFormWithoutElseSchema, DefineFormSchema, EvalFormSchema, FunctionCallFormSchema, LambdaFormSchema, LionFunctionValueSchema, LionFunctionValueType, MatchFormSchema, MatchPatternSchema, QuoteFormSchema, ValidIdentifierSchema };
24
+ //# sourceMappingURL=evaluation.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluation.d.mts","names":[],"sources":["../../src/schemas/evaluation.ts"],"mappings":";;;;;KAIY,qBAAA,OAA4B,IAAA,gBAAoB,cAAA;AAAA,cAE/C,uBAAA,EAAuB,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAMvB,sBAAA,EAAsB,MAAA,CAAA,SAAA,WAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,eAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAKtB,cAAA,EAAc,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,YAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAKd,eAAA,EAAe,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAKf,eAAA,EAAe,MAAA,CAAA,SAAA,WAAA,MAAA,CAAA,OAAA,eAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAgBf,qBAAA,EAAqB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA;AAAA,cAKrB,gBAAA,EAAgB,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,OAAA,cAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAMhB,gBAAA,EAAgB,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,OAAA,cAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,KAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAOhB,cAAA,EAAc,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAKd,kBAAA,EAAkB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,YAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAKlB,yBAAA,EAAyB,MAAA,CAAA,SAAA,WAAA,MAAA,CAAA,OAAA,YAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,gBAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAKzB,sBAAA,EAAsB,MAAA,CAAA,SAAA,WAAA,MAAA,CAAA,OAAA,YAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,gBAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,cAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,YAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAMtB,cAAA,EAAc,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,SAAA,WAAA,MAAA,CAAA,OAAA,YAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,gBAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,gBAAA,MAAA,CAAA,SAAA,WAAA,MAAA,CAAA,OAAA,YAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,gBAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,cAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,YAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAMd,kBAAA,EAAkB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA;AAAA,cAKlB,eAAA,EAAe,MAAA,CAAA,SAAA,WAAA,MAAA,CAAA,OAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,gBAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,aAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,cAAA,MAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,MAAA,SAAA,MAAA,CAAA,OAAA,SAAA,MAAA,CAAA,IAAA,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA,WAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,QAAA,MAAA,CAAA,MAAA,IAAA,MAAA,CAAA,OAAA,CAAA,qBAAA,EAAA,qBAAA"}
@@ -0,0 +1,38 @@
1
+ import { LionExpressionSchema } from "./lion-expression.mjs";
2
+ import { Schema } from "effect";
3
+ //#region src/schemas/evaluation.ts
4
+ const LionFunctionValueSchema = Schema.declare((input) => {
5
+ return typeof input === "function";
6
+ });
7
+ const FunctionCallFormSchema = Schema.Tuple([LionExpressionSchema], LionExpressionSchema);
8
+ const EvalFormSchema = Schema.Tuple(Schema.Literal("eval"), LionExpressionSchema);
9
+ const QuoteFormSchema = Schema.Tuple(Schema.Literal("quote"), LionExpressionSchema);
10
+ const BeginFormSchema = Schema.Tuple([Schema.Literal("begin")], LionExpressionSchema);
11
+ const DISALLOWED_IDENTIFIERS = [
12
+ "begin",
13
+ "define",
14
+ "eval",
15
+ "quote",
16
+ "lambda",
17
+ "cond",
18
+ "match",
19
+ "__proto__"
20
+ ];
21
+ const ValidIdentifierSchema = Schema.String.pipe(Schema.filter((s) => !DISALLOWED_IDENTIFIERS.includes(s)), Schema.minLength(1));
22
+ const DefineFormSchema = Schema.Tuple(Schema.Literal("define"), ValidIdentifierSchema, LionExpressionSchema);
23
+ const LambdaFormSchema = Schema.Tuple(Schema.Literal("lambda"), Schema.Array(ValidIdentifierSchema), LionExpressionSchema);
24
+ const CondCaseSchema = Schema.Tuple(LionExpressionSchema, LionExpressionSchema);
25
+ const CondElseCaseSchema = Schema.Tuple(Schema.Literal("else"), LionExpressionSchema);
26
+ const CondFormWithoutElseSchema = Schema.Tuple([Schema.Literal("cond"), CondCaseSchema], CondCaseSchema);
27
+ const CondFormWithElseSchema = Schema.Tuple([Schema.Literal("cond"), CondCaseSchema], CondCaseSchema, CondElseCaseSchema);
28
+ const CondFormSchema = Schema.Union(CondFormWithoutElseSchema, CondFormWithElseSchema);
29
+ const MatchPatternSchema = Schema.Tuple(LionExpressionSchema, LionExpressionSchema);
30
+ const MatchFormSchema = Schema.Tuple([
31
+ Schema.Literal("match"),
32
+ LionExpressionSchema,
33
+ MatchPatternSchema
34
+ ], MatchPatternSchema, LionExpressionSchema);
35
+ //#endregion
36
+ export { BeginFormSchema, CondCaseSchema, CondElseCaseSchema, CondFormSchema, CondFormWithElseSchema, CondFormWithoutElseSchema, DefineFormSchema, EvalFormSchema, FunctionCallFormSchema, LambdaFormSchema, LionFunctionValueSchema, MatchFormSchema, MatchPatternSchema, QuoteFormSchema, ValidIdentifierSchema };
37
+
38
+ //# sourceMappingURL=evaluation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluation.mjs","names":[],"sources":["../../src/schemas/evaluation.ts"],"sourcesContent":["import { Schema } from \"effect\";\nimport { LionExpressionSchema } from \"@/schemas/lion-expression.ts\";\nimport type { EvaluateResult } from \"@/types/evaluation.ts\";\n\nexport type LionFunctionValueType = (...args: unknown[]) => EvaluateResult;\n\nexport const LionFunctionValueSchema = Schema.declare(\n (input: unknown): input is LionFunctionValueType => {\n return typeof input === \"function\";\n }\n);\n\nexport const FunctionCallFormSchema = Schema.Tuple(\n [LionExpressionSchema],\n LionExpressionSchema\n);\n\nexport const EvalFormSchema = Schema.Tuple(\n Schema.Literal(\"eval\"),\n LionExpressionSchema\n);\n\nexport const QuoteFormSchema = Schema.Tuple(\n Schema.Literal(\"quote\"),\n LionExpressionSchema\n);\n\nexport const BeginFormSchema = Schema.Tuple(\n [Schema.Literal(\"begin\")],\n LionExpressionSchema\n);\n\nconst DISALLOWED_IDENTIFIERS = [\n \"begin\",\n \"define\",\n \"eval\",\n \"quote\",\n \"lambda\",\n \"cond\",\n \"match\",\n \"__proto__\",\n];\n\nexport const ValidIdentifierSchema = Schema.String.pipe(\n Schema.filter((s) => !DISALLOWED_IDENTIFIERS.includes(s)),\n Schema.minLength(1)\n);\n\nexport const DefineFormSchema = Schema.Tuple(\n Schema.Literal(\"define\"),\n ValidIdentifierSchema,\n LionExpressionSchema\n);\n\nexport const LambdaFormSchema = Schema.Tuple(\n Schema.Literal(\"lambda\"),\n Schema.Array(ValidIdentifierSchema),\n LionExpressionSchema\n);\n\n// [\"cond\", [<predicate>, <result>], ..., [\"else\", <result>]]\nexport const CondCaseSchema = Schema.Tuple(\n LionExpressionSchema,\n LionExpressionSchema\n);\n\nexport const CondElseCaseSchema = Schema.Tuple(\n Schema.Literal(\"else\"),\n LionExpressionSchema\n);\n\nexport const CondFormWithoutElseSchema = Schema.Tuple(\n [Schema.Literal(\"cond\"), CondCaseSchema],\n CondCaseSchema\n);\n\nexport const CondFormWithElseSchema = Schema.Tuple(\n [Schema.Literal(\"cond\"), CondCaseSchema],\n CondCaseSchema,\n CondElseCaseSchema\n);\n\nexport const CondFormSchema = Schema.Union(\n CondFormWithoutElseSchema,\n CondFormWithElseSchema\n);\n\n// [\"match\", <value>, [<predicate>, <fn>], ..., <fallback-fn>]\nexport const MatchPatternSchema = Schema.Tuple(\n LionExpressionSchema,\n LionExpressionSchema\n);\n\nexport const MatchFormSchema = Schema.Tuple(\n [Schema.Literal(\"match\"), LionExpressionSchema, MatchPatternSchema],\n MatchPatternSchema,\n LionExpressionSchema\n);\n"],"mappings":";;;AAMA,MAAa,0BAA0B,OAAO,SAC3C,UAAmD;AAClD,QAAO,OAAO,UAAU;EAE3B;AAED,MAAa,yBAAyB,OAAO,MAC3C,CAAC,qBAAqB,EACtB,qBACD;AAED,MAAa,iBAAiB,OAAO,MACnC,OAAO,QAAQ,OAAO,EACtB,qBACD;AAED,MAAa,kBAAkB,OAAO,MACpC,OAAO,QAAQ,QAAQ,EACvB,qBACD;AAED,MAAa,kBAAkB,OAAO,MACpC,CAAC,OAAO,QAAQ,QAAQ,CAAC,EACzB,qBACD;AAED,MAAM,yBAAyB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,wBAAwB,OAAO,OAAO,KACjD,OAAO,QAAQ,MAAM,CAAC,uBAAuB,SAAS,EAAE,CAAC,EACzD,OAAO,UAAU,EAAE,CACpB;AAED,MAAa,mBAAmB,OAAO,MACrC,OAAO,QAAQ,SAAS,EACxB,uBACA,qBACD;AAED,MAAa,mBAAmB,OAAO,MACrC,OAAO,QAAQ,SAAS,EACxB,OAAO,MAAM,sBAAsB,EACnC,qBACD;AAGD,MAAa,iBAAiB,OAAO,MACnC,sBACA,qBACD;AAED,MAAa,qBAAqB,OAAO,MACvC,OAAO,QAAQ,OAAO,EACtB,qBACD;AAED,MAAa,4BAA4B,OAAO,MAC9C,CAAC,OAAO,QAAQ,OAAO,EAAE,eAAe,EACxC,eACD;AAED,MAAa,yBAAyB,OAAO,MAC3C,CAAC,OAAO,QAAQ,OAAO,EAAE,eAAe,EACxC,gBACA,mBACD;AAED,MAAa,iBAAiB,OAAO,MACnC,2BACA,uBACD;AAGD,MAAa,qBAAqB,OAAO,MACvC,sBACA,qBACD;AAED,MAAa,kBAAkB,OAAO,MACpC;CAAC,OAAO,QAAQ,QAAQ;CAAE;CAAsB;CAAmB,EACnE,oBACA,qBACD"}
@@ -0,0 +1,2 @@
1
+ import { n as JsonPrimitiveType, t as JsonPrimitiveSchema } from "../json-primitive-DUaaoNff.mjs";
2
+ export { JsonPrimitiveSchema, JsonPrimitiveType };
@@ -0,0 +1,7 @@
1
+ import { Schema } from "effect";
2
+ //#region src/schemas/json-primitive.ts
3
+ const JsonPrimitiveSchema = Schema.Union(Schema.String, Schema.Number, Schema.Boolean, Schema.Null);
4
+ //#endregion
5
+ export { JsonPrimitiveSchema };
6
+
7
+ //# sourceMappingURL=json-primitive.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-primitive.mjs","names":[],"sources":["../../src/schemas/json-primitive.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\nexport const JsonPrimitiveSchema = Schema.Union(\n Schema.String,\n Schema.Number,\n Schema.Boolean,\n Schema.Null\n);\n\nexport type JsonPrimitiveType = typeof JsonPrimitiveSchema.Type;\n"],"mappings":";;AAEA,MAAa,sBAAsB,OAAO,MACxC,OAAO,QACP,OAAO,QACP,OAAO,SACP,OAAO,KACR"}
@@ -0,0 +1,2 @@
1
+ import { a as LionExpressionType, i as LionExpressionSchema, n as LionArrayExpressionSchema, o as LionRecordExpressionSchema, r as LionArrayExpressionType, s as LionRecordExpressionType, t as AssumedExpressionType } from "../lion-expression-6Y3itx9l.mjs";
2
+ export { AssumedExpressionType, LionArrayExpressionSchema, LionArrayExpressionType, LionExpressionSchema, LionExpressionType, LionRecordExpressionSchema, LionRecordExpressionType };
@@ -0,0 +1,14 @@
1
+ import { JsonPrimitiveSchema } from "./json-primitive.mjs";
2
+ import { Array, Schema } from "effect";
3
+ //#region src/schemas/lion-expression.ts
4
+ const LionArrayExpressionSchema = Schema.Array(Schema.suspend(() => LionExpressionSchema));
5
+ const DISALLOWED_KEYS = ["__proto__"];
6
+ const LionRecordExpressionSchema = Schema.Record({
7
+ key: Schema.String.pipe(Schema.filter((s) => !Array.contains(DISALLOWED_KEYS, s)), Schema.minLength(1)),
8
+ value: Schema.suspend(() => LionExpressionSchema)
9
+ });
10
+ const LionExpressionSchema = Schema.Union(JsonPrimitiveSchema, LionArrayExpressionSchema, LionRecordExpressionSchema);
11
+ //#endregion
12
+ export { LionArrayExpressionSchema, LionExpressionSchema, LionRecordExpressionSchema };
13
+
14
+ //# sourceMappingURL=lion-expression.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lion-expression.mjs","names":["Arr"],"sources":["../../src/schemas/lion-expression.ts"],"sourcesContent":["import { Array as Arr, Schema } from \"effect\";\nimport {\n JsonPrimitiveSchema,\n type JsonPrimitiveType,\n} from \"@/schemas/json-primitive.ts\";\n\n// array\nexport type AssumedExpressionType =\n | JsonPrimitiveType\n | readonly AssumedExpressionType[]\n | { readonly [key: string]: AssumedExpressionType };\n\nexport const LionArrayExpressionSchema = Schema.Array(\n Schema.suspend(\n (): Schema.Schema<AssumedExpressionType> => LionExpressionSchema\n )\n);\n\nexport type LionArrayExpressionType = typeof LionArrayExpressionSchema.Type;\n\nconst DISALLOWED_KEYS = [\"__proto__\"] as const;\n\n// record\nexport const LionRecordExpressionSchema = Schema.Record({\n key: Schema.String.pipe(\n Schema.filter((s) => !Arr.contains(DISALLOWED_KEYS, s)),\n Schema.minLength(1)\n ),\n value: Schema.suspend(\n (): Schema.Schema<AssumedExpressionType> => LionExpressionSchema\n ),\n});\n\nexport type LionRecordExpressionType = typeof LionRecordExpressionSchema.Type;\n\n// expression\nexport const LionExpressionSchema = Schema.Union(\n JsonPrimitiveSchema,\n LionArrayExpressionSchema,\n LionRecordExpressionSchema\n);\n\nexport type LionExpressionType = typeof LionExpressionSchema.Type;\n"],"mappings":";;;AAYA,MAAa,4BAA4B,OAAO,MAC9C,OAAO,cACuC,qBAC7C,CACF;AAID,MAAM,kBAAkB,CAAC,YAAY;AAGrC,MAAa,6BAA6B,OAAO,OAAO;CACtD,KAAK,OAAO,OAAO,KACjB,OAAO,QAAQ,MAAM,CAACA,MAAI,SAAS,iBAAiB,EAAE,CAAC,EACvD,OAAO,UAAU,EAAE,CACpB;CACD,OAAO,OAAO,cACgC,qBAC7C;CACF,CAAC;AAKF,MAAa,uBAAuB,OAAO,MACzC,qBACA,2BACA,2BACD"}
@@ -0,0 +1,2 @@
1
+ import { n as getService, t as LionEnvironmentService } from "../evaluation-EqzK8tQV.mjs";
2
+ export { LionEnvironmentService, getService };
@@ -0,0 +1,8 @@
1
+ import { Context, Effect, pipe } from "effect";
2
+ //#region src/services/evaluation.ts
3
+ var LionEnvironmentService = class extends Context.Tag("LionEnvironmentService")() {};
4
+ const getService = (context) => pipe(Effect.context(), Effect.map(Context.get(context)));
5
+ //#endregion
6
+ export { LionEnvironmentService, getService };
7
+
8
+ //# sourceMappingURL=evaluation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluation.mjs","names":[],"sources":["../../src/services/evaluation.ts"],"sourcesContent":["import { Context, Effect, pipe } from \"effect\";\nimport type { Environment } from \"@/schemas/environment\";\n\nexport class LionEnvironmentService extends Context.Tag(\n \"LionEnvironmentService\"\n)<LionEnvironmentService, Environment>() {}\n\nexport const getService = <T, U>(context: Context.Tag<T, U>) =>\n pipe(Effect.context<T>(), Effect.map(Context.get(context)));\n"],"mappings":";;AAGA,IAAa,yBAAb,cAA4C,QAAQ,IAClD,yBACD,EAAuC,CAAC;AAEzC,MAAa,cAAoB,YAC/B,KAAK,OAAO,SAAY,EAAE,OAAO,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { t as EvaluateResult } from "../evaluation-uwZSKxIf.mjs";
2
+ export { EvaluateResult };
@@ -0,0 +1 @@
1
+ export {};
package/package.json ADDED
@@ -0,0 +1,69 @@
1
+ {
2
+ "name": "@lionlang/core",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "Lion is a JSON-based Lisp.",
6
+ "license": "MIT",
7
+ "author": "Andrue Anderson <andrue.anderson.cs@gmail.com>",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/andrueandersoncs/lion.git",
11
+ "directory": "packages/core"
12
+ },
13
+ "publishConfig": {
14
+ "access": "public"
15
+ },
16
+ "exports": {
17
+ "./errors/evaluation": "./dist/errors/evaluation.mjs",
18
+ "./evaluation/base-forms/array": "./dist/evaluation/base-forms/array.mjs",
19
+ "./evaluation/base-forms/primitive": "./dist/evaluation/base-forms/primitive.mjs",
20
+ "./evaluation/base-forms/record": "./dist/evaluation/base-forms/record.mjs",
21
+ "./evaluation/environment": "./dist/evaluation/environment.mjs",
22
+ "./evaluation/evaluate": "./dist/evaluation/evaluate.mjs",
23
+ "./evaluation/special-forms/begin": "./dist/evaluation/special-forms/begin.mjs",
24
+ "./evaluation/special-forms/cond": "./dist/evaluation/special-forms/cond.mjs",
25
+ "./evaluation/special-forms/define": "./dist/evaluation/special-forms/define.mjs",
26
+ "./evaluation/special-forms/eval": "./dist/evaluation/special-forms/eval.mjs",
27
+ "./evaluation/special-forms/function": "./dist/evaluation/special-forms/function.mjs",
28
+ "./evaluation/special-forms/lambda": "./dist/evaluation/special-forms/lambda.mjs",
29
+ "./evaluation/special-forms/match": "./dist/evaluation/special-forms/match.mjs",
30
+ "./evaluation/special-forms/quote": "./dist/evaluation/special-forms/quote.mjs",
31
+ "./modules": "./dist/modules/index.mjs",
32
+ "./modules/array": "./dist/modules/array.mjs",
33
+ "./modules/boolean": "./dist/modules/boolean.mjs",
34
+ "./modules/console": "./dist/modules/console.mjs",
35
+ "./modules/func": "./dist/modules/func.mjs",
36
+ "./modules/lib/shared": "./dist/modules/lib/shared.mjs",
37
+ "./modules/number": "./dist/modules/number.mjs",
38
+ "./modules/object": "./dist/modules/object.mjs",
39
+ "./modules/string": "./dist/modules/string.mjs",
40
+ "./modules/value": "./dist/modules/value.mjs",
41
+ "./schemas/environment": "./dist/schemas/environment.mjs",
42
+ "./schemas/evaluation": "./dist/schemas/evaluation.mjs",
43
+ "./schemas/json-primitive": "./dist/schemas/json-primitive.mjs",
44
+ "./schemas/lion-expression": "./dist/schemas/lion-expression.mjs",
45
+ "./services/evaluation": "./dist/services/evaluation.mjs",
46
+ "./types/evaluation": "./dist/types/evaluation.mjs",
47
+ "./package.json": "./package.json"
48
+ },
49
+ "files": [
50
+ "dist"
51
+ ],
52
+ "scripts": {
53
+ "test": "vitest run",
54
+ "typecheck": "tsc --noEmit",
55
+ "build": "tsdown"
56
+ },
57
+ "devDependencies": {
58
+ "@effect/vitest": "^0.27.0",
59
+ "@types/bun": "latest",
60
+ "tsdown": "^0.21.6",
61
+ "vitest": "^4.0.16"
62
+ },
63
+ "peerDependencies": {
64
+ "typescript": "catalog:"
65
+ },
66
+ "dependencies": {
67
+ "effect": "catalog:"
68
+ }
69
+ }