@mojir/dvala 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +1613 -4
- package/dist/bundler.esm.js +2 -0
- package/dist/bundler.esm.js.map +1 -0
- package/dist/bundler.js +2 -0
- package/dist/bundler.js.map +1 -0
- package/dist/cli/cli/src/cli.d.ts +2 -0
- package/dist/cli/cli/src/cliDocumentation/formatCliDescription.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliArgumentInfo.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliDocumentation.d.ts +2 -0
- package/dist/cli/cli/src/cliDocumentation/getCliFunctionExamples.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliFunctionSignature.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliTitle.d.ts +3 -0
- package/dist/cli/cli/src/cliDocumentation/getCliType.d.ts +3 -0
- package/dist/cli/cli/src/cliFormatterRules.d.ts +13 -0
- package/dist/cli/cli/src/colorizer.d.ts +939 -0
- package/dist/cli/cli/src/createReadlineInterface.d.ts +5 -0
- package/dist/cli/cli/src/js-interop/Cli/Fs/index.d.ts +2 -0
- package/dist/cli/cli/src/js-interop/Cli/Proc/index.d.ts +3 -0
- package/dist/cli/cli/src/js-interop/Cli/index.d.ts +2 -0
- package/dist/cli/cli.js +38685 -0
- package/dist/cli/common/createFormatter.d.ts +6 -0
- package/dist/cli/common/utils.d.ts +2 -0
- package/dist/cli/reference/api.d.ts +75 -0
- package/dist/cli/reference/datatype.d.ts +3 -0
- package/dist/cli/reference/effect.d.ts +3 -0
- package/dist/cli/reference/examples.d.ts +11 -0
- package/dist/cli/reference/index.d.ts +191 -0
- package/dist/cli/reference/shorthand.d.ts +3 -0
- package/dist/cli/src/AutoCompleter/AutoCompleter.d.ts +25 -0
- package/dist/cli/src/Dvala/Cache.d.ts +16 -0
- package/dist/cli/src/Dvala/Dvala.d.ts +68 -0
- package/dist/cli/src/allModules.d.ts +2 -0
- package/dist/cli/src/builtin/bindingNode.d.ts +11 -0
- package/dist/cli/src/builtin/core/array.d.ts +2 -0
- package/dist/cli/src/builtin/core/assertion.d.ts +2 -0
- package/dist/cli/src/builtin/core/bitwise.d.ts +2 -0
- package/dist/cli/src/builtin/core/collection.d.ts +2 -0
- package/dist/cli/src/builtin/core/functional.d.ts +2 -0
- package/dist/cli/src/builtin/core/math.d.ts +2 -0
- package/dist/cli/src/builtin/core/meta.d.ts +3 -0
- package/dist/cli/src/builtin/core/misc.d.ts +2 -0
- package/dist/cli/src/builtin/core/object.d.ts +2 -0
- package/dist/cli/src/builtin/core/predicates.d.ts +2 -0
- package/dist/cli/src/builtin/core/regexp.d.ts +2 -0
- package/dist/cli/src/builtin/core/sequence.d.ts +2 -0
- package/dist/cli/src/builtin/core/string.d.ts +2 -0
- package/dist/cli/src/builtin/core/vector.d.ts +2 -0
- package/dist/cli/src/builtin/index.d.ts +13 -0
- package/dist/cli/src/builtin/interface.d.ts +113 -0
- package/dist/cli/src/builtin/modules/assertion/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/assertion/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/bitwise/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/collection/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/convert/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/functional/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/grid/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/grid/fromArray.d.ts +8 -0
- package/dist/cli/src/builtin/modules/grid/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/grid/transpose.d.ts +2 -0
- package/dist/cli/src/builtin/modules/interface.d.ts +28 -0
- package/dist/cli/src/builtin/modules/linear-algebra/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/calcFractionalRanks.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/collinear.d.ts +2 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/corrleation.d.ts +8 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/covariance.d.ts +4 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/dot.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/gaussJordanElimination.d.ts +7 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/getUnit.d.ts +2 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/isZeroVector.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/kendallTau.d.ts +10 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/length.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/pearsonCorr.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/scale.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/solve.d.ts +8 -0
- package/dist/cli/src/builtin/modules/linear-algebra/helpers/subtract.d.ts +1 -0
- package/dist/cli/src/builtin/modules/linear-algebra/index.d.ts +4 -0
- package/dist/cli/src/builtin/modules/math/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/matrix/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/adjugate.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/band.d.ts +9 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/cofactor.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/determinant.d.ts +6 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/inverse.d.ts +6 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isBanded.d.ts +11 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isDiagonal.d.ts +10 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isIdentity.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isOrthogonal.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isSquare.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isSymetric.d.ts +8 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/isTriangular.d.ts +13 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/matrixMultiply.d.ts +7 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/minor.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/norm1.d.ts +1 -0
- package/dist/cli/src/builtin/modules/matrix/helpers/trace.d.ts +8 -0
- package/dist/cli/src/builtin/modules/matrix/index.d.ts +4 -0
- package/dist/cli/src/builtin/modules/number-theory/binomialCefficient.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/combinations.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/derangements.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/divisors.d.ts +4 -0
- package/dist/cli/src/builtin/modules/number-theory/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/factorial.d.ts +3 -0
- package/dist/cli/src/builtin/modules/number-theory/index.d.ts +4 -0
- package/dist/cli/src/builtin/modules/number-theory/partitions.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/permutations.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/powerSet.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/primeFactors.d.ts +11 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/abundant.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/arithmetic.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/bell.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/bernoulli.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/catalan.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/collatz.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/composite.d.ts +3 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/deficient.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/factorial.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/fibonacci.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/geometric.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/golomb.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/happy.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/index.d.ts +27 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/juggler.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/lookAndSay.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/lucas.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/lucky.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/mersenne.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/padovan.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/partition.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/pell.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/perfect.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/perfectCube.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/perfectPower.d.ts +10 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/perfectSquare.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/poligonal.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/prime.d.ts +3 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/recaman.d.ts +9 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/sylvester.d.ts +1 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/thueMorse.d.ts +2 -0
- package/dist/cli/src/builtin/modules/number-theory/sequences/tribonacci.d.ts +1 -0
- package/dist/cli/src/builtin/modules/random/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/random/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/sequence/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/string/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/bincount.d.ts +9 -0
- package/dist/cli/src/builtin/modules/vector/calcMad.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/calcMean.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/calcMedad.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/calcMedian.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/calcStdDev.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/calcVariance.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/docs.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/entropy.d.ts +8 -0
- package/dist/cli/src/builtin/modules/vector/histogram.d.ts +9 -0
- package/dist/cli/src/builtin/modules/vector/index.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/mode.d.ts +6 -0
- package/dist/cli/src/builtin/modules/vector/outliers.d.ts +7 -0
- package/dist/cli/src/builtin/modules/vector/percentile.d.ts +7 -0
- package/dist/cli/src/builtin/modules/vector/quartiles.d.ts +1 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/entropy.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/giniCoefficient.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/index.d.ts +13 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/iqr.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/kurtosis.d.ts +5 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/mad.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/mean.d.ts +4 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/medad.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/median.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/prod.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/rms.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/skewness.d.ts +3 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/span.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/standardDeviation.d.ts +3 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/sum.d.ts +2 -0
- package/dist/cli/src/builtin/modules/vector/reductionFunctions/variance.d.ts +3 -0
- package/dist/cli/src/builtin/normalExpressions/index.d.ts +8 -0
- package/dist/cli/src/builtin/specialExpressionTypes.d.ts +26 -0
- package/dist/cli/src/builtin/specialExpressions/and.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/array.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/block.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/cond.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/defined.d.ts +5 -0
- package/dist/cli/src/builtin/specialExpressions/effect.d.ts +5 -0
- package/dist/cli/src/builtin/specialExpressions/functions.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/if.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/import.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/let.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/loop.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/loops.d.ts +9 -0
- package/dist/cli/src/builtin/specialExpressions/match.d.ts +7 -0
- package/dist/cli/src/builtin/specialExpressions/object.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/or.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/parallel.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/perform.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/qq.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/race.d.ts +6 -0
- package/dist/cli/src/builtin/specialExpressions/recur.d.ts +5 -0
- package/dist/cli/src/builtin/specialExpressions/throw.d.ts +5 -0
- package/dist/cli/src/builtin/specialExpressions/try.d.ts +7 -0
- package/dist/cli/src/builtin/specialExpressions/unless.d.ts +6 -0
- package/dist/cli/src/builtin/utils.d.ts +6 -0
- package/dist/cli/src/bundler/index.d.ts +9 -0
- package/dist/cli/src/bundler/interface.d.ts +15 -0
- package/dist/cli/src/bundler.d.ts +3 -0
- package/dist/cli/src/cli.d.ts +2 -0
- package/dist/cli/src/cliDocumentation/formatCliDescription.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliArgumentInfo.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliDocumentation.d.ts +2 -0
- package/dist/cli/src/cliDocumentation/getCliFunctionExamples.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliFunctionSignature.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliTitle.d.ts +3 -0
- package/dist/cli/src/cliDocumentation/getCliType.d.ts +3 -0
- package/dist/cli/src/cliFormatterRules.d.ts +13 -0
- package/dist/cli/src/colorizer.d.ts +939 -0
- package/dist/cli/src/constants/constants.d.ts +19 -0
- package/dist/cli/src/createReadlineInterface.d.ts +5 -0
- package/dist/cli/src/effects.d.ts +106 -0
- package/dist/cli/src/errors.d.ts +24 -0
- package/dist/cli/src/evaluator/ContextStack.d.ts +65 -0
- package/dist/cli/src/evaluator/effectRef.d.ts +27 -0
- package/dist/cli/src/evaluator/effectTypes.d.ts +79 -0
- package/dist/cli/src/evaluator/frames.d.ts +539 -0
- package/dist/cli/src/evaluator/interface.d.ts +14 -0
- package/dist/cli/src/evaluator/serialization.d.ts +45 -0
- package/dist/cli/src/evaluator/standardEffects.d.ts +35 -0
- package/dist/cli/src/evaluator/step.d.ts +159 -0
- package/dist/cli/src/evaluator/suspension.d.ts +53 -0
- package/dist/cli/src/evaluator/trampoline.d.ts +119 -0
- package/dist/cli/src/getUndefinedSymbols/index.d.ts +7 -0
- package/dist/cli/src/index.d.ts +18 -0
- package/dist/cli/src/initReferenceData.d.ts +1 -0
- package/dist/cli/src/interface.d.ts +7 -0
- package/dist/cli/src/js-interop/Cli/Fs/index.d.ts +2 -0
- package/dist/cli/src/js-interop/Cli/Proc/index.d.ts +3 -0
- package/dist/cli/src/js-interop/Cli/index.d.ts +2 -0
- package/dist/cli/src/parser/ParserContext.d.ts +20 -0
- package/dist/cli/src/parser/getPrecedence.d.ts +3 -0
- package/dist/cli/src/parser/helpers.d.ts +19 -0
- package/dist/cli/src/parser/index.d.ts +5 -0
- package/dist/cli/src/parser/subParsers/parseArray.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseBindingTarget.d.ts +8 -0
- package/dist/cli/src/parser/subParsers/parseCond.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseDo.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseExpression.d.ts +5 -0
- package/dist/cli/src/parser/subParsers/parseForOrDoseq.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseFunction.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseFunctionCall.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseIfOrUnless.d.ts +5 -0
- package/dist/cli/src/parser/subParsers/parseImplicitBlock.d.ts +5 -0
- package/dist/cli/src/parser/subParsers/parseLet.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseLoop.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseMatch.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseNumber.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseObject.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseOperand.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseRegexpShorthand.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseReservedSymbol.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseString.d.ts +4 -0
- package/dist/cli/src/parser/subParsers/parseSymbol.d.ts +3 -0
- package/dist/cli/src/parser/subParsers/parseTry.d.ts +4 -0
- package/dist/cli/src/parser/types.d.ts +129 -0
- package/dist/cli/src/symbolPatterns.d.ts +2 -0
- package/dist/cli/src/testFramework/index.d.ts +15 -0
- package/dist/cli/src/tokenizer/minifyTokenStream.d.ts +4 -0
- package/dist/cli/src/tokenizer/operators.d.ts +12 -0
- package/dist/cli/src/tokenizer/reservedNames.d.ts +66 -0
- package/dist/cli/src/tokenizer/token.d.ts +84 -0
- package/dist/cli/src/tokenizer/tokenize.d.ts +8 -0
- package/dist/cli/src/tokenizer/tokenizers.d.ts +14 -0
- package/dist/cli/src/transformer/index.d.ts +2 -0
- package/dist/cli/src/typeGuards/annotatedArrays.d.ts +16 -0
- package/dist/cli/src/typeGuards/array.d.ts +9 -0
- package/dist/cli/src/typeGuards/astNode.d.ts +19 -0
- package/dist/cli/src/typeGuards/dvala.d.ts +26 -0
- package/dist/cli/src/typeGuards/dvalaFunction.d.ts +12 -0
- package/dist/cli/src/typeGuards/index.d.ts +7 -0
- package/dist/cli/src/typeGuards/number.d.ts +66 -0
- package/dist/cli/src/typeGuards/string.d.ts +15 -0
- package/dist/cli/src/untokenizer/index.d.ts +2 -0
- package/dist/cli/src/utils/arity.d.ts +10 -0
- package/dist/cli/src/utils/debug/debugTools.d.ts +1 -0
- package/dist/cli/src/utils/debug/getCodeMarker.d.ts +2 -0
- package/dist/cli/src/utils/debug/getSourceCodeInfo.d.ts +2 -0
- package/dist/cli/src/utils/docString/generateDocString.d.ts +2 -0
- package/dist/cli/src/utils/getAssertionError.d.ts +3 -0
- package/dist/cli/src/utils/index.d.ts +14 -0
- package/dist/cli/src/utils/maybePromise.d.ts +54 -0
- package/dist/cli/src/utils/symbols.d.ts +3 -0
- package/dist/common/createFormatter.d.ts +6 -0
- package/dist/common/utils.d.ts +2 -0
- package/dist/debug.esm.js +2 -0
- package/dist/debug.esm.js.map +1 -0
- package/dist/debug.js +2 -0
- package/dist/debug.js.map +1 -0
- package/dist/dvala.iife.js +2 -0
- package/dist/dvala.iife.js.map +1 -0
- package/dist/full.esm.js +2 -0
- package/dist/full.esm.js.map +1 -0
- package/dist/full.js +2 -0
- package/dist/full.js.map +1 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/assertion.esm.js +2 -0
- package/dist/modules/assertion.esm.js.map +1 -0
- package/dist/modules/assertion.js +2 -0
- package/dist/modules/assertion.js.map +1 -0
- package/dist/modules/bitwise.esm.js +2 -0
- package/dist/modules/bitwise.esm.js.map +1 -0
- package/dist/modules/bitwise.js +2 -0
- package/dist/modules/bitwise.js.map +1 -0
- package/dist/modules/cli/src/cli.d.ts +2 -0
- package/dist/modules/cli/src/cliDocumentation/formatCliDescription.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliArgumentInfo.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliDocumentation.d.ts +2 -0
- package/dist/modules/cli/src/cliDocumentation/getCliFunctionExamples.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliFunctionSignature.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliTitle.d.ts +3 -0
- package/dist/modules/cli/src/cliDocumentation/getCliType.d.ts +3 -0
- package/dist/modules/cli/src/cliFormatterRules.d.ts +13 -0
- package/dist/modules/cli/src/colorizer.d.ts +939 -0
- package/dist/modules/cli/src/createReadlineInterface.d.ts +5 -0
- package/dist/modules/cli/src/js-interop/Cli/Fs/index.d.ts +2 -0
- package/dist/modules/cli/src/js-interop/Cli/Proc/index.d.ts +3 -0
- package/dist/modules/cli/src/js-interop/Cli/index.d.ts +2 -0
- package/dist/modules/collection.esm.js +2 -0
- package/dist/modules/collection.esm.js.map +1 -0
- package/dist/modules/collection.js +2 -0
- package/dist/modules/collection.js.map +1 -0
- package/dist/modules/common/createFormatter.d.ts +6 -0
- package/dist/modules/common/utils.d.ts +2 -0
- package/dist/modules/convert.esm.js +2 -0
- package/dist/modules/convert.esm.js.map +1 -0
- package/dist/modules/convert.js +2 -0
- package/dist/modules/convert.js.map +1 -0
- package/dist/modules/functional.esm.js +2 -0
- package/dist/modules/functional.esm.js.map +1 -0
- package/dist/modules/functional.js +2 -0
- package/dist/modules/functional.js.map +1 -0
- package/dist/modules/grid.esm.js +2 -0
- package/dist/modules/grid.esm.js.map +1 -0
- package/dist/modules/grid.js +2 -0
- package/dist/modules/grid.js.map +1 -0
- package/dist/modules/linear-algebra.esm.js +2 -0
- package/dist/modules/linear-algebra.esm.js.map +1 -0
- package/dist/modules/linear-algebra.js +2 -0
- package/dist/modules/linear-algebra.js.map +1 -0
- package/dist/modules/math.esm.js +2 -0
- package/dist/modules/math.esm.js.map +1 -0
- package/dist/modules/math.js +2 -0
- package/dist/modules/math.js.map +1 -0
- package/dist/modules/matrix.esm.js +2 -0
- package/dist/modules/matrix.esm.js.map +1 -0
- package/dist/modules/matrix.js +2 -0
- package/dist/modules/matrix.js.map +1 -0
- package/dist/modules/number-theory.esm.js +2 -0
- package/dist/modules/number-theory.esm.js.map +1 -0
- package/dist/modules/number-theory.js +2 -0
- package/dist/modules/number-theory.js.map +1 -0
- package/dist/modules/random.esm.js +2 -0
- package/dist/modules/random.esm.js.map +1 -0
- package/dist/modules/random.js +2 -0
- package/dist/modules/random.js.map +1 -0
- package/dist/modules/reference/api.d.ts +75 -0
- package/dist/modules/reference/datatype.d.ts +3 -0
- package/dist/modules/reference/effect.d.ts +3 -0
- package/dist/modules/reference/index.d.ts +191 -0
- package/dist/modules/reference/shorthand.d.ts +3 -0
- package/dist/modules/sequence.esm.js +2 -0
- package/dist/modules/sequence.esm.js.map +1 -0
- package/dist/modules/sequence.js +2 -0
- package/dist/modules/sequence.js.map +1 -0
- package/dist/modules/src/AutoCompleter/AutoCompleter.d.ts +25 -0
- package/dist/modules/src/Dvala/Cache.d.ts +16 -0
- package/dist/modules/src/Dvala/Dvala.d.ts +68 -0
- package/dist/modules/src/allModules.d.ts +2 -0
- package/dist/modules/src/builtin/bindingNode.d.ts +11 -0
- package/dist/modules/src/builtin/core/array.d.ts +2 -0
- package/dist/modules/src/builtin/core/assertion.d.ts +2 -0
- package/dist/modules/src/builtin/core/bitwise.d.ts +2 -0
- package/dist/modules/src/builtin/core/collection.d.ts +2 -0
- package/dist/modules/src/builtin/core/functional.d.ts +2 -0
- package/dist/modules/src/builtin/core/math.d.ts +2 -0
- package/dist/modules/src/builtin/core/meta.d.ts +3 -0
- package/dist/modules/src/builtin/core/misc.d.ts +2 -0
- package/dist/modules/src/builtin/core/object.d.ts +2 -0
- package/dist/modules/src/builtin/core/predicates.d.ts +2 -0
- package/dist/modules/src/builtin/core/regexp.d.ts +2 -0
- package/dist/modules/src/builtin/core/sequence.d.ts +2 -0
- package/dist/modules/src/builtin/core/string.d.ts +2 -0
- package/dist/modules/src/builtin/core/vector.d.ts +2 -0
- package/dist/modules/src/builtin/index.d.ts +13 -0
- package/dist/modules/src/builtin/interface.d.ts +113 -0
- package/dist/modules/src/builtin/modules/assertion/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/assertion/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/bitwise/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/collection/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/convert/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/functional/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/grid/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/grid/fromArray.d.ts +8 -0
- package/dist/modules/src/builtin/modules/grid/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/grid/transpose.d.ts +2 -0
- package/dist/modules/src/builtin/modules/interface.d.ts +28 -0
- package/dist/modules/src/builtin/modules/linear-algebra/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/calcFractionalRanks.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/collinear.d.ts +2 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/corrleation.d.ts +8 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/covariance.d.ts +4 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/dot.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/gaussJordanElimination.d.ts +7 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/getUnit.d.ts +2 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/isZeroVector.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/kendallTau.d.ts +10 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/length.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/pearsonCorr.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/scale.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/solve.d.ts +8 -0
- package/dist/modules/src/builtin/modules/linear-algebra/helpers/subtract.d.ts +1 -0
- package/dist/modules/src/builtin/modules/linear-algebra/index.d.ts +4 -0
- package/dist/modules/src/builtin/modules/math/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/matrix/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/adjugate.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/band.d.ts +9 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/cofactor.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/determinant.d.ts +6 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/diagonal.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/inverse.d.ts +6 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isBanded.d.ts +11 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isDiagonal.d.ts +10 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isIdentity.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isOrthogonal.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isSquare.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isSymetric.d.ts +8 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/isTriangular.d.ts +13 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/matrixMultiply.d.ts +7 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/minor.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/norm1.d.ts +1 -0
- package/dist/modules/src/builtin/modules/matrix/helpers/trace.d.ts +8 -0
- package/dist/modules/src/builtin/modules/matrix/index.d.ts +4 -0
- package/dist/modules/src/builtin/modules/number-theory/binomialCefficient.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/combinations.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/derangements.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/divisors.d.ts +4 -0
- package/dist/modules/src/builtin/modules/number-theory/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/factorial.d.ts +3 -0
- package/dist/modules/src/builtin/modules/number-theory/index.d.ts +4 -0
- package/dist/modules/src/builtin/modules/number-theory/partitions.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/permutations.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/powerSet.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/primeFactors.d.ts +11 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/abundant.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/arithmetic.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/bell.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/bernoulli.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/catalan.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/collatz.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/composite.d.ts +3 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/deficient.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/factorial.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/fibonacci.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/geometric.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/golomb.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/happy.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/index.d.ts +27 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/juggler.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/lookAndSay.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/lucas.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/lucky.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/mersenne.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/padovan.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/partition.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/pell.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/perfect.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/perfectCube.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/perfectPower.d.ts +10 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/perfectSquare.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/poligonal.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/prime.d.ts +3 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/recaman.d.ts +9 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/sylvester.d.ts +1 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/thueMorse.d.ts +2 -0
- package/dist/modules/src/builtin/modules/number-theory/sequences/tribonacci.d.ts +1 -0
- package/dist/modules/src/builtin/modules/random/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/random/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/sequence/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/string/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/bincount.d.ts +9 -0
- package/dist/modules/src/builtin/modules/vector/calcMad.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/calcMean.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/calcMedad.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/calcMedian.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/calcStdDev.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/calcVariance.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/docs.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/entropy.d.ts +8 -0
- package/dist/modules/src/builtin/modules/vector/histogram.d.ts +9 -0
- package/dist/modules/src/builtin/modules/vector/index.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/mode.d.ts +6 -0
- package/dist/modules/src/builtin/modules/vector/outliers.d.ts +7 -0
- package/dist/modules/src/builtin/modules/vector/percentile.d.ts +7 -0
- package/dist/modules/src/builtin/modules/vector/quartiles.d.ts +1 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/entropy.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/giniCoefficient.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/index.d.ts +13 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/iqr.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/kurtosis.d.ts +5 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/mad.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/mean.d.ts +4 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/medad.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/median.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/prod.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/rms.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/skewness.d.ts +3 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/span.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/standardDeviation.d.ts +3 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/sum.d.ts +2 -0
- package/dist/modules/src/builtin/modules/vector/reductionFunctions/variance.d.ts +3 -0
- package/dist/modules/src/builtin/normalExpressions/index.d.ts +8 -0
- package/dist/modules/src/builtin/specialExpressionTypes.d.ts +26 -0
- package/dist/modules/src/builtin/specialExpressions/and.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/array.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/block.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/cond.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/defined.d.ts +5 -0
- package/dist/modules/src/builtin/specialExpressions/effect.d.ts +5 -0
- package/dist/modules/src/builtin/specialExpressions/functions.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/if.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/import.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/let.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/loop.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/loops.d.ts +9 -0
- package/dist/modules/src/builtin/specialExpressions/match.d.ts +7 -0
- package/dist/modules/src/builtin/specialExpressions/object.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/or.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/parallel.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/perform.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/qq.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/race.d.ts +6 -0
- package/dist/modules/src/builtin/specialExpressions/recur.d.ts +5 -0
- package/dist/modules/src/builtin/specialExpressions/throw.d.ts +5 -0
- package/dist/modules/src/builtin/specialExpressions/try.d.ts +7 -0
- package/dist/modules/src/builtin/specialExpressions/unless.d.ts +6 -0
- package/dist/modules/src/builtin/utils.d.ts +6 -0
- package/dist/modules/src/bundler/index.d.ts +9 -0
- package/dist/modules/src/bundler/interface.d.ts +15 -0
- package/dist/modules/src/bundler.d.ts +3 -0
- package/dist/modules/src/constants/constants.d.ts +19 -0
- package/dist/modules/src/debug.d.ts +115 -0
- package/dist/modules/src/effects.d.ts +106 -0
- package/dist/modules/src/errors.d.ts +24 -0
- package/dist/modules/src/evaluator/ContextStack.d.ts +65 -0
- package/dist/modules/src/evaluator/effectRef.d.ts +27 -0
- package/dist/modules/src/evaluator/effectTypes.d.ts +79 -0
- package/dist/modules/src/evaluator/frames.d.ts +539 -0
- package/dist/modules/src/evaluator/interface.d.ts +14 -0
- package/dist/modules/src/evaluator/serialization.d.ts +45 -0
- package/dist/modules/src/evaluator/standardEffects.d.ts +35 -0
- package/dist/modules/src/evaluator/step.d.ts +159 -0
- package/dist/modules/src/evaluator/suspension.d.ts +53 -0
- package/dist/modules/src/evaluator/trampoline.d.ts +119 -0
- package/dist/modules/src/full.d.ts +17 -0
- package/dist/modules/src/getUndefinedSymbols/index.d.ts +7 -0
- package/dist/modules/src/index.d.ts +18 -0
- package/dist/modules/src/initReferenceData.d.ts +1 -0
- package/dist/modules/src/interface.d.ts +7 -0
- package/dist/modules/src/modules/assertion.d.ts +2 -0
- package/dist/modules/src/modules/bitwise.d.ts +2 -0
- package/dist/modules/src/modules/collection.d.ts +2 -0
- package/dist/modules/src/modules/convert.d.ts +2 -0
- package/dist/modules/src/modules/functional.d.ts +2 -0
- package/dist/modules/src/modules/grid.d.ts +2 -0
- package/dist/modules/src/modules/linear-algebra.d.ts +2 -0
- package/dist/modules/src/modules/math.d.ts +2 -0
- package/dist/modules/src/modules/matrix.d.ts +2 -0
- package/dist/modules/src/modules/number-theory.d.ts +2 -0
- package/dist/modules/src/modules/random.d.ts +2 -0
- package/dist/modules/src/modules/sequence.d.ts +2 -0
- package/dist/modules/src/modules/string.d.ts +2 -0
- package/dist/modules/src/modules/vector.d.ts +2 -0
- package/dist/modules/src/parser/ParserContext.d.ts +20 -0
- package/dist/modules/src/parser/getPrecedence.d.ts +3 -0
- package/dist/modules/src/parser/helpers.d.ts +19 -0
- package/dist/modules/src/parser/index.d.ts +5 -0
- package/dist/modules/src/parser/subParsers/parseArray.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseBindingTarget.d.ts +8 -0
- package/dist/modules/src/parser/subParsers/parseCond.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseDo.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseExpression.d.ts +5 -0
- package/dist/modules/src/parser/subParsers/parseForOrDoseq.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseFunction.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseFunctionCall.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseIfOrUnless.d.ts +5 -0
- package/dist/modules/src/parser/subParsers/parseImplicitBlock.d.ts +5 -0
- package/dist/modules/src/parser/subParsers/parseLet.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseLoop.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseMatch.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseNumber.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseObject.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseOperand.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseRegexpShorthand.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseReservedSymbol.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseString.d.ts +4 -0
- package/dist/modules/src/parser/subParsers/parseSymbol.d.ts +3 -0
- package/dist/modules/src/parser/subParsers/parseTry.d.ts +4 -0
- package/dist/modules/src/parser/types.d.ts +129 -0
- package/dist/modules/src/symbolPatterns.d.ts +2 -0
- package/dist/modules/src/testFramework/index.d.ts +15 -0
- package/dist/modules/src/tokenizer/minifyTokenStream.d.ts +4 -0
- package/dist/modules/src/tokenizer/operators.d.ts +12 -0
- package/dist/modules/src/tokenizer/reservedNames.d.ts +66 -0
- package/dist/modules/src/tokenizer/token.d.ts +84 -0
- package/dist/modules/src/tokenizer/tokenize.d.ts +8 -0
- package/dist/modules/src/tokenizer/tokenizers.d.ts +14 -0
- package/dist/modules/src/transformer/index.d.ts +2 -0
- package/dist/modules/src/typeGuards/annotatedArrays.d.ts +16 -0
- package/dist/modules/src/typeGuards/array.d.ts +9 -0
- package/dist/modules/src/typeGuards/astNode.d.ts +19 -0
- package/dist/modules/src/typeGuards/dvala.d.ts +26 -0
- package/dist/modules/src/typeGuards/dvalaFunction.d.ts +12 -0
- package/dist/modules/src/typeGuards/index.d.ts +7 -0
- package/dist/modules/src/typeGuards/number.d.ts +66 -0
- package/dist/modules/src/typeGuards/string.d.ts +15 -0
- package/dist/modules/src/untokenizer/index.d.ts +2 -0
- package/dist/modules/src/utils/arity.d.ts +10 -0
- package/dist/modules/src/utils/debug/debugTools.d.ts +1 -0
- package/dist/modules/src/utils/debug/getCodeMarker.d.ts +2 -0
- package/dist/modules/src/utils/debug/getSourceCodeInfo.d.ts +2 -0
- package/dist/modules/src/utils/docString/generateDocString.d.ts +2 -0
- package/dist/modules/src/utils/getAssertionError.d.ts +3 -0
- package/dist/modules/src/utils/index.d.ts +14 -0
- package/dist/modules/src/utils/maybePromise.d.ts +54 -0
- package/dist/modules/src/utils/symbols.d.ts +3 -0
- package/dist/modules/string.esm.js +2 -0
- package/dist/modules/string.esm.js.map +1 -0
- package/dist/modules/string.js +2 -0
- package/dist/modules/string.js.map +1 -0
- package/dist/modules/vector.esm.js +2 -0
- package/dist/modules/vector.esm.js.map +1 -0
- package/dist/modules/vector.js +2 -0
- package/dist/modules/vector.js.map +1 -0
- package/dist/reference/api.d.ts +75 -0
- package/dist/reference/datatype.d.ts +3 -0
- package/dist/reference/effect.d.ts +3 -0
- package/dist/reference/index.d.ts +191 -0
- package/dist/reference/shorthand.d.ts +3 -0
- package/dist/src/AutoCompleter/AutoCompleter.d.ts +25 -0
- package/dist/src/Dvala/Cache.d.ts +16 -0
- package/dist/src/Dvala/Dvala.d.ts +68 -0
- package/dist/src/allModules.d.ts +2 -0
- package/dist/src/builtin/bindingNode.d.ts +11 -0
- package/dist/src/builtin/core/array.d.ts +2 -0
- package/dist/src/builtin/core/assertion.d.ts +2 -0
- package/dist/src/builtin/core/bitwise.d.ts +2 -0
- package/dist/src/builtin/core/collection.d.ts +2 -0
- package/dist/src/builtin/core/functional.d.ts +2 -0
- package/dist/src/builtin/core/math.d.ts +2 -0
- package/dist/src/builtin/core/meta.d.ts +3 -0
- package/dist/src/builtin/core/misc.d.ts +2 -0
- package/dist/src/builtin/core/object.d.ts +2 -0
- package/dist/src/builtin/core/predicates.d.ts +2 -0
- package/dist/src/builtin/core/regexp.d.ts +2 -0
- package/dist/src/builtin/core/sequence.d.ts +2 -0
- package/dist/src/builtin/core/string.d.ts +2 -0
- package/dist/src/builtin/core/vector.d.ts +2 -0
- package/dist/src/builtin/index.d.ts +13 -0
- package/dist/src/builtin/interface.d.ts +113 -0
- package/dist/src/builtin/modules/assertion/docs.d.ts +2 -0
- package/dist/src/builtin/modules/assertion/index.d.ts +2 -0
- package/dist/src/builtin/modules/bitwise/index.d.ts +2 -0
- package/dist/src/builtin/modules/collection/index.d.ts +2 -0
- package/dist/src/builtin/modules/convert/index.d.ts +2 -0
- package/dist/src/builtin/modules/functional/index.d.ts +2 -0
- package/dist/src/builtin/modules/grid/docs.d.ts +2 -0
- package/dist/src/builtin/modules/grid/fromArray.d.ts +8 -0
- package/dist/src/builtin/modules/grid/index.d.ts +2 -0
- package/dist/src/builtin/modules/grid/transpose.d.ts +2 -0
- package/dist/src/builtin/modules/interface.d.ts +28 -0
- package/dist/src/builtin/modules/linear-algebra/docs.d.ts +2 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/calcFractionalRanks.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/collinear.d.ts +2 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/corrleation.d.ts +8 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/covariance.d.ts +4 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/dot.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/gaussJordanElimination.d.ts +7 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/getUnit.d.ts +2 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/isZeroVector.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/kendallTau.d.ts +10 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/length.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/pearsonCorr.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/scale.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/solve.d.ts +8 -0
- package/dist/src/builtin/modules/linear-algebra/helpers/subtract.d.ts +1 -0
- package/dist/src/builtin/modules/linear-algebra/index.d.ts +4 -0
- package/dist/src/builtin/modules/math/index.d.ts +2 -0
- package/dist/src/builtin/modules/matrix/docs.d.ts +2 -0
- package/dist/src/builtin/modules/matrix/helpers/adjugate.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/band.d.ts +9 -0
- package/dist/src/builtin/modules/matrix/helpers/cofactor.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/determinant.d.ts +6 -0
- package/dist/src/builtin/modules/matrix/helpers/diagonal.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/inverse.d.ts +6 -0
- package/dist/src/builtin/modules/matrix/helpers/isBanded.d.ts +11 -0
- package/dist/src/builtin/modules/matrix/helpers/isDiagonal.d.ts +10 -0
- package/dist/src/builtin/modules/matrix/helpers/isIdentity.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/isOrthogonal.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/isSquare.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/isSymetric.d.ts +8 -0
- package/dist/src/builtin/modules/matrix/helpers/isTriangular.d.ts +13 -0
- package/dist/src/builtin/modules/matrix/helpers/matrixMultiply.d.ts +7 -0
- package/dist/src/builtin/modules/matrix/helpers/minor.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/norm1.d.ts +1 -0
- package/dist/src/builtin/modules/matrix/helpers/trace.d.ts +8 -0
- package/dist/src/builtin/modules/matrix/index.d.ts +4 -0
- package/dist/src/builtin/modules/number-theory/binomialCefficient.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/combinations.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/derangements.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/divisors.d.ts +4 -0
- package/dist/src/builtin/modules/number-theory/docs.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/factorial.d.ts +3 -0
- package/dist/src/builtin/modules/number-theory/index.d.ts +4 -0
- package/dist/src/builtin/modules/number-theory/partitions.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/permutations.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/powerSet.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/primeFactors.d.ts +11 -0
- package/dist/src/builtin/modules/number-theory/sequences/abundant.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/arithmetic.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/bell.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/bernoulli.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/catalan.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/collatz.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/composite.d.ts +3 -0
- package/dist/src/builtin/modules/number-theory/sequences/deficient.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/factorial.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/fibonacci.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/geometric.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/golomb.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/happy.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/index.d.ts +27 -0
- package/dist/src/builtin/modules/number-theory/sequences/juggler.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/lookAndSay.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/lucas.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/lucky.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/mersenne.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/padovan.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/partition.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/pell.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/perfect.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/perfectCube.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/perfectPower.d.ts +10 -0
- package/dist/src/builtin/modules/number-theory/sequences/perfectSquare.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/poligonal.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/prime.d.ts +3 -0
- package/dist/src/builtin/modules/number-theory/sequences/recaman.d.ts +9 -0
- package/dist/src/builtin/modules/number-theory/sequences/sylvester.d.ts +1 -0
- package/dist/src/builtin/modules/number-theory/sequences/thueMorse.d.ts +2 -0
- package/dist/src/builtin/modules/number-theory/sequences/tribonacci.d.ts +1 -0
- package/dist/src/builtin/modules/random/docs.d.ts +2 -0
- package/dist/src/builtin/modules/random/index.d.ts +2 -0
- package/dist/src/builtin/modules/sequence/index.d.ts +2 -0
- package/dist/src/builtin/modules/string/index.d.ts +2 -0
- package/dist/src/builtin/modules/vector/bincount.d.ts +9 -0
- package/dist/src/builtin/modules/vector/calcMad.d.ts +1 -0
- package/dist/src/builtin/modules/vector/calcMean.d.ts +1 -0
- package/dist/src/builtin/modules/vector/calcMedad.d.ts +1 -0
- package/dist/src/builtin/modules/vector/calcMedian.d.ts +1 -0
- package/dist/src/builtin/modules/vector/calcStdDev.d.ts +2 -0
- package/dist/src/builtin/modules/vector/calcVariance.d.ts +2 -0
- package/dist/src/builtin/modules/vector/docs.d.ts +2 -0
- package/dist/src/builtin/modules/vector/entropy.d.ts +8 -0
- package/dist/src/builtin/modules/vector/histogram.d.ts +9 -0
- package/dist/src/builtin/modules/vector/index.d.ts +2 -0
- package/dist/src/builtin/modules/vector/mode.d.ts +6 -0
- package/dist/src/builtin/modules/vector/outliers.d.ts +7 -0
- package/dist/src/builtin/modules/vector/percentile.d.ts +7 -0
- package/dist/src/builtin/modules/vector/quartiles.d.ts +1 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/entropy.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/giniCoefficient.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/index.d.ts +13 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/iqr.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/kurtosis.d.ts +5 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/mad.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/mean.d.ts +4 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/medad.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/median.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/prod.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/rms.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/skewness.d.ts +3 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/span.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/standardDeviation.d.ts +3 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/sum.d.ts +2 -0
- package/dist/src/builtin/modules/vector/reductionFunctions/variance.d.ts +3 -0
- package/dist/src/builtin/normalExpressions/index.d.ts +8 -0
- package/dist/src/builtin/specialExpressionTypes.d.ts +26 -0
- package/dist/src/builtin/specialExpressions/and.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/array.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/block.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/cond.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/defined.d.ts +5 -0
- package/dist/src/builtin/specialExpressions/effect.d.ts +5 -0
- package/dist/src/builtin/specialExpressions/functions.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/if.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/import.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/let.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/loop.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/loops.d.ts +9 -0
- package/dist/src/builtin/specialExpressions/match.d.ts +7 -0
- package/dist/src/builtin/specialExpressions/object.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/or.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/parallel.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/perform.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/qq.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/race.d.ts +6 -0
- package/dist/src/builtin/specialExpressions/recur.d.ts +5 -0
- package/dist/src/builtin/specialExpressions/throw.d.ts +5 -0
- package/dist/src/builtin/specialExpressions/try.d.ts +7 -0
- package/dist/src/builtin/specialExpressions/unless.d.ts +6 -0
- package/dist/src/builtin/utils.d.ts +6 -0
- package/dist/src/bundler/index.d.ts +9 -0
- package/dist/src/bundler/interface.d.ts +15 -0
- package/dist/src/bundler.d.ts +3 -0
- package/dist/src/constants/constants.d.ts +19 -0
- package/dist/src/debug.d.ts +115 -0
- package/dist/src/effects.d.ts +106 -0
- package/dist/src/errors.d.ts +24 -0
- package/dist/src/evaluator/ContextStack.d.ts +65 -0
- package/dist/src/evaluator/effectRef.d.ts +27 -0
- package/dist/src/evaluator/effectTypes.d.ts +79 -0
- package/dist/src/evaluator/frames.d.ts +539 -0
- package/dist/src/evaluator/interface.d.ts +14 -0
- package/dist/src/evaluator/serialization.d.ts +45 -0
- package/dist/src/evaluator/standardEffects.d.ts +35 -0
- package/dist/src/evaluator/step.d.ts +159 -0
- package/dist/src/evaluator/suspension.d.ts +53 -0
- package/dist/src/evaluator/trampoline.d.ts +119 -0
- package/dist/src/full.d.ts +17 -0
- package/dist/src/getUndefinedSymbols/index.d.ts +7 -0
- package/dist/src/index.d.ts +18 -0
- package/dist/src/initReferenceData.d.ts +1 -0
- package/dist/src/interface.d.ts +7 -0
- package/dist/src/modules/assertion.d.ts +2 -0
- package/dist/src/modules/bitwise.d.ts +2 -0
- package/dist/src/modules/collection.d.ts +2 -0
- package/dist/src/modules/convert.d.ts +2 -0
- package/dist/src/modules/functional.d.ts +2 -0
- package/dist/src/modules/grid.d.ts +2 -0
- package/dist/src/modules/linear-algebra.d.ts +2 -0
- package/dist/src/modules/math.d.ts +2 -0
- package/dist/src/modules/matrix.d.ts +2 -0
- package/dist/src/modules/number-theory.d.ts +2 -0
- package/dist/src/modules/random.d.ts +2 -0
- package/dist/src/modules/sequence.d.ts +2 -0
- package/dist/src/modules/string.d.ts +2 -0
- package/dist/src/modules/vector.d.ts +2 -0
- package/dist/src/parser/ParserContext.d.ts +20 -0
- package/dist/src/parser/getPrecedence.d.ts +3 -0
- package/dist/src/parser/helpers.d.ts +19 -0
- package/dist/src/parser/index.d.ts +5 -0
- package/dist/src/parser/subParsers/parseArray.d.ts +3 -0
- package/dist/src/parser/subParsers/parseBindingTarget.d.ts +8 -0
- package/dist/src/parser/subParsers/parseCond.d.ts +4 -0
- package/dist/src/parser/subParsers/parseDo.d.ts +3 -0
- package/dist/src/parser/subParsers/parseExpression.d.ts +5 -0
- package/dist/src/parser/subParsers/parseForOrDoseq.d.ts +4 -0
- package/dist/src/parser/subParsers/parseFunction.d.ts +4 -0
- package/dist/src/parser/subParsers/parseFunctionCall.d.ts +3 -0
- package/dist/src/parser/subParsers/parseIfOrUnless.d.ts +5 -0
- package/dist/src/parser/subParsers/parseImplicitBlock.d.ts +5 -0
- package/dist/src/parser/subParsers/parseLet.d.ts +4 -0
- package/dist/src/parser/subParsers/parseLoop.d.ts +4 -0
- package/dist/src/parser/subParsers/parseMatch.d.ts +4 -0
- package/dist/src/parser/subParsers/parseNumber.d.ts +3 -0
- package/dist/src/parser/subParsers/parseObject.d.ts +3 -0
- package/dist/src/parser/subParsers/parseOperand.d.ts +3 -0
- package/dist/src/parser/subParsers/parseRegexpShorthand.d.ts +3 -0
- package/dist/src/parser/subParsers/parseReservedSymbol.d.ts +3 -0
- package/dist/src/parser/subParsers/parseString.d.ts +4 -0
- package/dist/src/parser/subParsers/parseSymbol.d.ts +3 -0
- package/dist/src/parser/subParsers/parseTry.d.ts +4 -0
- package/dist/src/parser/types.d.ts +129 -0
- package/dist/src/symbolPatterns.d.ts +2 -0
- package/dist/src/testFramework/index.d.ts +15 -0
- package/dist/src/tokenizer/minifyTokenStream.d.ts +4 -0
- package/dist/src/tokenizer/operators.d.ts +12 -0
- package/dist/src/tokenizer/reservedNames.d.ts +66 -0
- package/dist/src/tokenizer/token.d.ts +84 -0
- package/dist/src/tokenizer/tokenize.d.ts +8 -0
- package/dist/src/tokenizer/tokenizers.d.ts +14 -0
- package/dist/src/transformer/index.d.ts +2 -0
- package/dist/src/typeGuards/annotatedArrays.d.ts +16 -0
- package/dist/src/typeGuards/array.d.ts +9 -0
- package/dist/src/typeGuards/astNode.d.ts +19 -0
- package/dist/src/typeGuards/dvala.d.ts +26 -0
- package/dist/src/typeGuards/dvalaFunction.d.ts +12 -0
- package/dist/src/typeGuards/index.d.ts +7 -0
- package/dist/src/typeGuards/number.d.ts +66 -0
- package/dist/src/typeGuards/string.d.ts +15 -0
- package/dist/src/untokenizer/index.d.ts +2 -0
- package/dist/src/utils/arity.d.ts +10 -0
- package/dist/src/utils/debug/debugTools.d.ts +1 -0
- package/dist/src/utils/debug/getCodeMarker.d.ts +2 -0
- package/dist/src/utils/debug/getSourceCodeInfo.d.ts +2 -0
- package/dist/src/utils/docString/generateDocString.d.ts +2 -0
- package/dist/src/utils/getAssertionError.d.ts +3 -0
- package/dist/src/utils/index.d.ts +14 -0
- package/dist/src/utils/maybePromise.d.ts +54 -0
- package/dist/src/utils/symbols.d.ts +3 -0
- package/dist/testFramework.esm.js +2 -0
- package/dist/testFramework.esm.js.map +1 -0
- package/dist/testFramework.js +2 -0
- package/dist/testFramework.js.map +1 -0
- package/package.json +144 -16
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function e(e){if(!e.position||!e.code)return"";const t=e.position.column-1,n=e.code.length-t-1;return`${" ".repeat(Math.max(t,0))}^${" ".repeat(Math.max(n,0))}`}class t extends Error{params;constructor(e){super(`recur, params: ${e}`),Object.setPrototypeOf(this,t.prototype),this.name="RecurSignal",this.params=e}}class n extends Error{sourceCodeInfo;shortMessage;constructor(t,r){const o=t instanceof Error?t.message:`${t}`;super(function(t,n){if(!n)return t;const r=`${n.position.line}:${n.position.column}`;return`${t}${n.filePath?`\n${n.filePath}:${r}`:`\nLocation ${r}`}\n${n.code}\n${e(n)}`}(o,r)),this.shortMessage=o,this.sourceCodeInfo=r,Object.setPrototypeOf(this,n.prototype),this.name="DvalaError"}getCodeMarker(){return this.sourceCodeInfo&&e(this.sourceCodeInfo)}}class r extends n{userMessage;constructor(e,t){super(e,t),this.userMessage=e,Object.setPrototypeOf(this,r.prototype),this.name="UserDefinedError"}}class o extends n{constructor(e,t){super(e,t),Object.setPrototypeOf(this,o.prototype),this.name="AssertionError"}}class i extends n{symbol;constructor(e,t){super(`Undefined symbol '${e}'.`,t),this.symbol=e,Object.setPrototypeOf(this,i.prototype),this.name="UndefinedSymbolError"}}function a(e){return e instanceof n}const s={Number:1,String:2,NormalExpression:3,SpecialExpression:4,UserDefinedSymbol:5,NormalBuiltinSymbol:6,SpecialBuiltinSymbol:7,ReservedSymbol:8,Binding:9,Spread:10},u=new Set(Object.values(s));function c(e){return Object.keys(s).find(t=>s[t]===e)}const l=new Set(["UserDefined","Partial","Comp","Constantly","Juxt","Complement","EveryPred","SomePred","Fnull","Builtin","SpecialBuiltin","NativeJsFunction","Module"]);const f="^^fn^^",d="^^re^^",p="^^ef^^";function h(e){return null!==e&&"object"==typeof e&&(f in e&&"functionType"in e&&function(e){return"string"==typeof e&&l.has(e)}(e.functionType))}function y(e){return!(!Array.isArray(e)||e.length<2)&&function(e){return"number"==typeof e&&u.has(e)}(e[0])}function v(e){return h(e)?`<function ${e.name||"λ"}>`:y(e)?`${c(e[0])}-node`:null===e?"null":"object"==typeof e&&e instanceof RegExp?`${e}`:"object"==typeof e&&e instanceof Error?e.toString():JSON.stringify(e)}function g(e,t){return e?.sourceCodeInfo??t}function m(e,t,r){return new n(`Expected ${e}, got ${v(t)}.`,g(t,r))}function b(e,t){return w(e,t),e}function w(e,t){if(!function(e){return void 0!==e}(e))throw new n("Unexpected undefined",g(e,t))}function k(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function x(e){return null!==e&&"object"==typeof e&&!!e[f]}function E(e,t){return S(e,t),e}function S(e,t){if(!x(e))throw m("DvalaFunction",e,t)}function N(e){return x(e)&&"UserDefined"===e.functionType}function P(e,t){return $(e,t),e}function $(e,t){if(!N(e))throw m("NativeJsFunction",e,t)}function C(e){return x(e)&&"NativeJsFunction"===e.functionType}function I(e,t){return A(e,t),e}function A(e,t){if(!C(e))throw m("NativeJsFunction",e,t)}function j(e){return k(e)&&"Builtin"===e.functionType}function O(e){return void 0!==e}function U(e,t){return M(e,t),e}function M(e,t){if(!O(e))throw m("not undefined",e,t)}function V(e){return Array.isArray(e)||"string"==typeof e}function F(e,t){if(!V(e))throw m("string or array",e,t)}function B(e){return!(null===e||"object"!=typeof e||Array.isArray(e)||e instanceof RegExp||x(e)||L(e)||z(e))}function T(e,t){if(!B(e))throw m("object",e,t)}function R(e){return V(e)||B(e)}function _(e,t){if(!R(e))throw m("string, array or object",e,t)}function L(e){return null!==e&&"object"==typeof e&&!!e[d]}function D(e,t){if(!function(e){return L(e)||"string"==typeof e}(e))throw m("string or RegularExpression",e,t)}function z(e){return null!==e&&"object"==typeof e&&!!e[p]}function J(e,t){return W(e,t),e}function W(e,t){if(!function(e){return"number"==typeof e||!!R(e)||!!x(e)}(e))throw m("FunctionLike",e,t)}function q(e,t={}){return"string"==typeof e&&((!t.nonEmpty||0!==e.length)&&(!t.char||1===e.length))}function K(e,t,n={}){if(!q(e,n))throw m(""+(n.nonEmpty?"non empty string":n.char?"character":"string"),e,t)}function Y(e,t,n={}){return K(e,t,n),e}function G(e){return"string"==typeof e||"number"==typeof e}function H(e,t){return X(e,t),e}function X(e,t){if(!G(e))throw m("string or number",e,t)}const Q={assert:{evaluate:(e,t)=>{const n=e[0],r=2===e.length?e[1]:`${n}`;if(K(r,t),!n)throw new o(r,t);return U(n,t)},arity:{min:1,max:2}}};function Z(e,t={}){return"number"==typeof e&&(!Number.isNaN(e)&&(!(t.integer&&!Number.isInteger(e))&&(!(t.finite&&!Number.isFinite(e))&&((!t.zero||0===e)&&((!t.nonZero||0!==e)&&(!(t.positive&&e<=0)&&(!(t.negative&&e>=0)&&(!(t.nonPositive&&e>0)&&(!(t.nonNegative&&e<0)&&(!("number"==typeof t.gt&&e<=t.gt)&&(!("number"==typeof t.gte&&e<t.gte)&&(!("number"==typeof t.lt&&e>=t.lt)&&!("number"==typeof t.lte&&e>t.lte)))))))))))))}function ee(e,t,r={}){if(!Z(e,r))throw new n(`Expected ${function(e){if(e.zero)return"zero";const t=function(e){return e.positive?"positive":e.negative?"negative":e.nonNegative?"non negative":e.nonPositive?"non positive":e.nonZero?"non zero":""}(e),n=e.integer?"integer":"number",r=e.finite?"finite":"",o=function(e){return"number"!=typeof e.gt&&"number"!=typeof e.gte||"number"!=typeof e.lt&&"number"!=typeof e.lte?"number"==typeof e.gt||"number"==typeof e.gte?"number"==typeof e.gt?`n > ${e.gt}`:`n >= ${e.gte}`:"number"==typeof e.lt||"number"==typeof e.lte?"number"==typeof e.lt?`n < ${e.lt}`:`n <= ${e.lte}`:"":`${"number"==typeof e.gt?`${e.gt} < n `:`${e.gte} <= n `}${"number"==typeof e.lt?`< ${e.lt}`:`<= ${e.lte}`}`}(e);return[t,r,n,o].filter(e=>!!e).join(" ")}(r)}, got ${v(e)}.`,g(e,t))}function te(e,t){const{min:n}=e;return!("number"==typeof n&&t<n)}function ne(e,t,r){const{min:o,max:i}=e;if("number"==typeof o&&t<o)throw new n(`Wrong number of arguments, expected at least ${o}, got ${v(t)}.`,r);if("number"==typeof i&&t>i)throw new n(`Wrong number of arguments, expected at most ${i}, got ${v(t)}.`,r)}function re(e){return{min:e,max:e}}const oe={"<<":{evaluate:([e,t],n)=>(ee(e,n,{integer:!0}),ee(t,n,{integer:!0,nonNegative:!0}),e<<t),arity:re(2)},">>":{evaluate:([e,t],n)=>(ee(e,n,{integer:!0}),ee(t,n,{integer:!0,nonNegative:!0}),e>>t),arity:re(2)},">>>":{evaluate:([e,t],n)=>(ee(e,n,{integer:!0}),ee(t,n,{integer:!0,nonNegative:!0}),e>>>t),arity:re(2)},"&":{evaluate:([e,...t],n)=>(ee(e,n,{integer:!0}),t.reduce((e,t)=>(ee(t,n,{integer:!0}),e&t),e)),arity:{min:2}},"|":{evaluate:([e,...t],n)=>(ee(e,n,{integer:!0}),t.reduce((e,t)=>(ee(t,n,{integer:!0}),e|t),e)),arity:{min:2}},xor:{evaluate:([e,...t],n)=>(ee(e,n,{integer:!0}),t.reduce((e,t)=>(ee(t,n,{integer:!0}),e^t),e)),arity:{min:2}}};function ie(e,t){return!!R(e)&&("string"==typeof e||Array.isArray(e)?!!Z(t,{integer:!0})&&(t>=0&&t<e.length):!!Object.getOwnPropertyDescriptor(e,t))}function ae(e,t,r){if(X(e,r),X(t,r),"string"==typeof e&&"string"==typeof t)return e<t?-1:e>t?1:0;if("number"==typeof e&&"number"==typeof t)return Math.sign(e-t);throw new n(`Cannot compare values of different types: ${typeof e} and ${typeof t}`,r)}function se(e,t,n){if(e===t)return!0;if("number"==typeof e&&"number"==typeof t)return function(e,t,n=fe){if(e===t)return!0;const r=Math.abs(e-t);if(0===e||0===t||r<n)return r<n;const o=Math.abs(e),i=Math.abs(t);return r/(o+i)<n}(e,t);if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r+=1)if(!se(U(e[r],n),U(t[r],n),n))return!1;return!0}if(L(e)&&L(t))return e.s===t.s&&e.f===t.f;if(k(e)&&k(t)){const r=Object.keys(e),o=Object.keys(t);if(r.length!==o.length)return!1;for(let o=0;o<r.length;o+=1){const i=Y(r[o],n);if(!se(e[i],t[i],n))return!1}return!0}return!1}function ue(e){return e??null}function ce(...e){const t=new Set;for(const n of e)n.forEach(e=>t.add(e));return t}function le(e,t){t.forEach(t=>e.add(t))}const fe=1e-10;function de(e,t=0){const n=e.split("\n");for(;n[0]?.match(/^\s*$/);)n.shift();for(;n[n.length-1]?.match(/^\s*$/);)n.pop();const r=n.reduce((e,t)=>{if(t.match(/^\s*$/))return e;const n=t.match(/^\s*/)[0].length;return Math.min(e,n)},1/0);return n.map(e=>" ".repeat(t)+e.slice(r)).join("\n").trimEnd()}function pe(e,t){if(!Array.isArray(e))throw m("array",e,t)}function he(e,t){if(!function(e){return Array.isArray(e)&&e.every(e=>"string"==typeof e)}(e))throw m("array of strings",e,t)}function ye(e,t){if(!function(e){return Array.isArray(e)&&e.every(e=>"string"==typeof e&&1===e.length)}(e))throw m("array of strings",e,t)}function ve(e,t){return e instanceof Promise?e.then(t):t(e)}function ge(e,t){const n=[];for(let r=0;r<e.length;r++){const o=t(e[r],r);if(o instanceof Promise)return me(o,n,e,t,r);n.push(o)}return n}async function me(e,t,n,r,o){t.push(await e);for(let e=o+1;e<n.length;e++)t.push(await r(n[e],e));return t}function be(e,t,n){let r=n;for(let n=0;n<e.length;n++){const o=t(r,e[n],n);if(o instanceof Promise)return we(o,e,t,n);r=o}return r}async function we(e,t,n,r){let o=await e;for(let e=r+1;e<t.length;e++)o=await n(o,t[e],e);return o}function ke(e,t){for(let n=0;n<e.length;n++){const r=t(e[n],n);if(r instanceof Promise)return xe(r,e,t,n)}}async function xe(e,t,n,r){await e;for(let e=r+1;e<t.length;e++)await n(t[e],e)}function Ee(e,t){for(let n=0;n<e.length;n++){const r=t(e[n],n);if(r instanceof Promise)return Se(r,e,t,n);if(r)return n}return-1}async function Se(e,t,n,r){if(await e)return r;for(let e=r+1;e<t.length;e++)if(await n(t[e],e))return e;return-1}const Ne={filter:{evaluate:([e,t],n,r,{executeFunction:o})=>{if(_(e,n),W(t,n),Array.isArray(e))return be(e,(e,i)=>ve(o(t,[i],r,n),t=>(t&&e.push(i),e)),[]);if(q(e)){return ve(be(e.split(""),(e,i)=>ve(o(t,[i],r,n),t=>(t&&e.push(i),e)),[]),e=>e.join(""))}return be(Object.entries(e),(e,[i,a])=>ve(o(t,[a],r,n),t=>(t&&(e[i]=a),e)),{})},arity:re(2)},map:{evaluate:(e,t,r,{executeFunction:o})=>{const i=J(e.at(-1),t);if(B(e[0]))return function({colls:e,contextStack:t,executeFunction:r,fn:o,sourceCodeInfo:i}){T(e[0],i);const a=Object.keys(e[0]),s={};return e.forEach(e=>{T(e,i);const t=Object.keys(e);if(t.length!==a.length)throw new n(`All objects must have the same keys. Expected: ${a.join(", ")}. Found: ${t.join(", ")}`,i);if(!t.every(e=>a.includes(e)))throw new n(`All objects must have the same keys. Expected: ${a.join(", ")}. Found: ${t.join(", ")}`,i);Object.entries(e).forEach(([e,t])=>{s[e]||(s[e]=[]),s[e].push(t)})}),be(a,(e,n)=>ve(r(o,s[n],t,i),t=>(e[n]=t,e)),{})}({colls:e.slice(0,-1),fn:i,sourceCodeInfo:t,contextStack:r,executeFunction:o});const a=e.slice(0,-1);F(a[0],t);const s="string"==typeof a[0];let u=a[0].length;a.slice(1).forEach(e=>{s?K(e,t):pe(e,t),u=Math.min(u,e.length)});const c=[];for(let e=0;e<u;e++)c.push(a.map(t=>t[e]));const l=ge(c,e=>o(i,e,r,t));return s?ve(l,e=>(e.forEach(e=>K(e,t)),e.join(""))):l},arity:{min:2}},reduce:{evaluate:([e,t,n],r,o,{executeFunction:i})=>(_(e,r),W(t,r),M(n,r),"string"==typeof e?(K(n,r),0===e.length?n:be(e.split(""),(e,n)=>i(t,[e,n],o,r),n)):Array.isArray(e)?0===e.length?n:be(e,(e,n)=>i(t,[e,n],o,r),n):0===Object.keys(e).length?n:be(Object.entries(e),(e,[,n])=>i(t,[e,n],o,r),n)),arity:re(3)},get:{evaluate:(e,t)=>{const[n,r]=e,o=ue(e[2]);if(X(r,t),null===n)return o;_(n,t);const i=function(e,t){if(B(e)){if("string"==typeof t&&ie(e,t))return ue(e[t])}else if(Z(t,{nonNegative:!0,integer:!0})&&t>=0&&t<e.length)return ue(e[t])}(n,r);return void 0===i?o:i},arity:{min:2,max:3}},count:{evaluate:([e],t)=>null===e?0:"string"==typeof e?e.length:(_(e,t),Array.isArray(e)?e.length:Object.keys(e).length),arity:re(1)},"contains?":{evaluate:([e,t],n)=>null!==e&&(_(e,n),q(e)?(K(t,n),e.includes(t)):V(e)?(M(t,n),!!e.find(e=>se(U(e),t,n))):(K(t,n),t in e)),arity:re(2)},assoc:{evaluate:([e,t,n],r)=>(_(e,r),X(t,r),M(n,r),function(e,t,n,r){if(_(e,r),X(t,r),Array.isArray(e)||"string"==typeof e){if(ee(t,r,{integer:!0}),ee(t,r,{gte:0}),ee(t,r,{lte:e.length}),"string"==typeof e)return K(n,r,{char:!0}),`${e.slice(0,t)}${n}${e.slice(t+1)}`;const o=[...e];return o[t]=n,o}K(t,r);const o={...e};return o[t]=n,o}(e,t,n,r)),arity:re(3)},"++":{evaluate:(e,t)=>(Z(e[0])||_(e[0],t),Array.isArray(e[0])?e.reduce((e,n)=>(pe(n,t),e.concat(n)),[]):G(e[0])?e.reduce((e,n)=>(X(n,t),`${e}${n}`),""):e.reduce((e,n)=>(T(n,t),Object.assign(e,n)),{})),arity:{min:1}}},Pe={range:{evaluate:(e,t)=>{const[n,r,o]=e;let i,a,s;ee(n,t,{finite:!0}),1===e.length?(i=0,a=n,s=a>=0?1:-1):2===e.length?(ee(r,t,{finite:!0}),i=n,a=r,s=a>=i?1:-1):(ee(r,t,{finite:!0}),ee(o,t,{finite:!0}),i=n,a=r,s=o,ee(s,t,a>i?{positive:!0}:a<i?{negative:!0}:{nonZero:!0}));const u=[];for(let e=i;s<0?e>a:e<a;e+=s)u.push(e);return u},arity:{min:1,max:3}},repeat:{evaluate:([e,t],n)=>{ee(t,n,{integer:!0,nonNegative:!0});const r=[];for(let n=0;n<t;n+=1)r.push(e);return r},arity:re(2)},flatten:{evaluate:([e,t],n)=>{pe(e,n);const r=void 0===t||t===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:function(e,t,n={}){return ee(e,t,n),e}(t,n,{integer:!0,nonNegative:!0});return e.flat(r)},arity:{min:1,max:2}},mapcat:{evaluate:([e,t],n,r,{executeFunction:o})=>(pe(e,n),W(t,n),ve(ge(e,e=>o(t,[e],r,n)),e=>e.flat(1))),arity:re(2)},"moving-fn":{evaluate:([e,t,n],r,o,{executeFunction:i})=>{pe(e,r),ee(t,r,{integer:!0,lte:e.length}),W(n,r);const a=[];for(let n=0;n<=e.length-t;n++)a.push(e.slice(n,n+t));return ge(a,e=>i(n,[e],o,r))},arity:re(3)},"running-fn":{evaluate:([e,t],n,r,{executeFunction:o})=>{pe(e,n),W(t,n);const i=[];for(let t=0;t<e.length;t+=1)i.push(e.slice(0,t+1));return ge(i,e=>o(t,[e],r,n))},arity:re(2)}},$e={nth:{evaluate:(e,t)=>{const[n,r]=e,o=ue(e[2]);if(ee(r,t,{integer:!0}),null===n)return o;if(F(n,t),r>=0&&r<n.length){return ue(n[r])}return o},arity:{min:2,max:3}},first:{evaluate:([e],t)=>{if(null===e)return null;F(e,t);return ue(e[0])},arity:re(1)},last:{evaluate:([e],t)=>{if(null===e)return null;F(e,t);return ue(e.at(-1))},arity:re(1)},pop:{evaluate:([e],t)=>(F(e,t),"string"==typeof e?e.substring(0,e.length-1):e.slice(0,e.length-1)),arity:re(1)},"index-of":{evaluate:([e,t],n)=>{if(M(t,n),null===e)return null;if(F(e,n),"string"==typeof e){K(t,n);const r=e.indexOf(t);return-1!==r?r:null}{const r=e.findIndex(e=>se(U(e,n),t),n);return-1!==r?r:null}},arity:re(2)},push:{evaluate:([e,...t],n)=>(F(e,n),"string"==typeof e?(ye(t,n),[e,...t].join("")):[...e,...t]),arity:{min:2}},rest:{evaluate:([e],t)=>(F(e,t),Array.isArray(e)?e.length<=1?[]:e.slice(1):e.substring(1)),arity:re(1)},next:{evaluate:([e],t)=>(F(e,t),Array.isArray(e)?e.length<=1?null:e.slice(1):e.length<=1?null:e.substring(1)),arity:re(1)},reverse:{evaluate:([e],t)=>null===e?null:(F(e,t),Array.isArray(e)?[...e].reverse():e.split("").reverse().join("")),arity:re(1)},second:{evaluate:([e],t)=>null===e?null:(F(e,t),ue(e[1])),arity:re(1)},slice:{evaluate:(e,t)=>{const[n,r,o]=e;return F(n,t),ee(r,t,{integer:!0}),2===e.length?(Array.isArray(n),n.slice(r)):(ee(o,t,{integer:!0}),Array.isArray(n),n.slice(r,o))},arity:{min:2,max:3}},some:{evaluate:([e,t],n,r,{executeFunction:o})=>{if(W(t,n),null===e)return null;if(F(e,n),0===e.length)return null;return be("string"==typeof e?e.split(""):e,(e,i)=>null!==e?e:ve(o(t,[i],r,n),e=>e?ue(i):null),null)},arity:re(2)},sort:{evaluate:(e,t,n,{executeFunction:r})=>{const[o]=e,i=1===e.length,a=i?null:e[1];if(F(o,t),"string"==typeof o){const e=o.split("");return i?e.sort((e,n)=>ae(e,n,t)):(W(a,t),e.sort((e,o)=>{const i=r(a,[e,o],n,t);if(i instanceof Promise)throw new TypeError("Async functions cannot be used as sort comparators");return ee(i,t,{finite:!0}),i})),e.join("")}const s=[...o];return i?s.sort((e,n)=>(X(e,t),X(n,t),ae(e,n,t))):s.sort((e,o)=>{W(a,t);const i=r(a,[e,o],n,t);if(i instanceof Promise)throw new TypeError("Async functions cannot be used as sort comparators");return ee(i,t,{finite:!0}),i}),s},arity:{min:1,max:2}},take:{evaluate:([e,t],n)=>{ee(t,n),F(e,n);const r=Math.max(Math.ceil(t),0);return e.slice(0,r)},arity:re(2)},"take-last":{evaluate:([e,t],n)=>{F(e,n),ee(t,n);const r=Math.max(Math.ceil(t),0),o=e.length-r;return e.slice(o)},arity:re(2)},drop:{evaluate:([e,t],n)=>{ee(t,n);const r=Math.max(Math.ceil(t),0);return F(e,n),e.slice(r)},arity:re(2)},"drop-last":{evaluate:([e,t],n)=>{F(e,n),ee(t,n);const r=Math.max(Math.ceil(t),0),o=e.length-r;return e.slice(0,o)},arity:re(2)},"take-while":{evaluate:([e,t],n,r,{executeFunction:o})=>{F(e,n),W(t,n);const i="string"==typeof e?e.split(""):Array.from(e);return ve(Ee(i,e=>ve(o(t,[e],r,n),e=>!e)),t=>{const n=-1===t?i:i.slice(0,t);return"string"==typeof e?n.join(""):n})},arity:re(2)},"drop-while":{evaluate:([e,t],n,r,{executeFunction:o})=>{F(e,n),W(t,n);const i=Array.isArray(e)?e:e.split("");return ve(Ee(i,e=>ve(o(t,[e],r,n),e=>!e)),t=>-1===t?"string"==typeof e?"":[]:"string"==typeof e?i.slice(t).join(""):e.slice(t))},arity:re(2)}},Ce=new WeakSet,Ie=new WeakSet,Ae=new WeakSet,je=new WeakSet,Oe=new WeakSet,Ue=new WeakSet,Me=new WeakSet;function Ve(e){return Array.isArray(e)?(Ce.has(e)||(Fe(e),_e(e)||Re(e)),e):e}function Fe(e){return!!Array.isArray(e)&&(!!Ie.has(e)||!Ae.has(e)&&(e.every(e=>Z(e))?(Ce.add(e),Ie.add(e),!0):(Ae.add(e),!1)))}function Be(e,t){if(!Fe(e))throw new n(`Expected a vector, but got ${e}`,t)}function Te(e,t){if(Be(e,t),0===e.length)throw new n(`Expected a non empty vector, but got ${e}`,t)}function Re(e){if(!Array.isArray(e))return!1;if(Ue.has(e))return!0;if(Me.has(e))return!1;if(0===e.length)return Me.add(e),!1;if(!Array.isArray(e[0]))return Me.add(e),!1;const t=e[0].length;for(const n of e.slice(1)){if(!Array.isArray(n))return Me.add(e),!1;if(n.length!==t)return Me.add(e),!1}return Ce.add(e),Ue.add(e),!0}function _e(e){if(!Array.isArray(e))return!1;if(je.has(e))return!0;if(Oe.has(e))return!1;if(0===e.length)return Oe.add(e),!1;if(!Array.isArray(e[0])||0===e[0].length)return Oe.add(e),!1;const t=e[0].length;for(const n of e)if(!Array.isArray(n)||n.length!==t||n.some(e=>!Z(e)))return Oe.add(e),!1;return Ce.add(e),Ue.add(e),je.add(e),!0}function Le(e,t){let r=!1,o=!1;for(const i of e)if(Fe(i))r=!0;else if(_e(i))o=!0;else if(!Z(i))throw new n("Invalid parameter type: "+typeof i,t);if(o){if(r)throw new n("Cannot mix vector and matrix types",t);let o=null,i=null;for(const r of e)if(_e(r))if(null===o)o=r.length,i=r[0].length;else if(r.length!==o||r[0].length!==i)throw new n("Matrix dimensions do not match",t);return["matrix",e.map(e=>_e(e)?e:Array.from({length:o},()=>Array.from({length:i},()=>e)))]}if(r){let r=null;for(const o of e)if(Fe(o))if(null===r)r=o.length;else if(o.length!==r)throw new n("Vector lengths do not match",t);return["vector",e.map(e=>Fe(e)?e:Array.from({length:r},()=>e))]}return["number",e]}function De(e){return(t,n)=>{const[r,o]=Le(t,n);return"number"===r?e(o[0]):"vector"===r?o[0].map(t=>e(t)):o[0].map(t=>t.map(t=>e(t)))}}function ze(e){return(t,n)=>{const[r,o]=Le(t,n);return"number"===r?e(o[0],o[1]):"vector"===r?o[0].map((t,n)=>e(t,o[1][n])):o[0].map((t,n)=>t.map((t,r)=>e(t,o[1][n][r])))}}function Je(e,t){return(n,r)=>{if(0===n.length)return e;const[o,i]=Le(n,r);if("number"===o)return i.reduce((e,n)=>t(e,n),e);if("vector"===o){const[e,...n]=i;return n.reduce((e,n)=>e.map((e,r)=>t(e,n[r])),e)}{const[e,...n]=i;return n.reduce((e,n)=>e.map((e,r)=>e.map((e,o)=>t(e,n[r][o]))),e)}}}const We={inc:{evaluate:De(e=>e+1),arity:re(1)},dec:{evaluate:De(e=>e-1),arity:re(1)},"+":{evaluate:Je(0,(e,t)=>e+t),arity:{}},"*":{evaluate:Je(1,(e,t)=>e*t),arity:{}},"/":{evaluate:(e,t)=>{if(0===e.length)return 1;const[n,r]=Le(e,t);if("number"===n){const[e,...t]=r;return 0===t.length?1/e:t.reduce((e,t)=>e/t,e)}if("vector"===n){const e=r[0];return r.slice(1).reduce((e,t)=>e.map((e,n)=>e/t[n]),e)}{const e=r[0];return r.slice(1).reduce((e,t)=>e.map((e,n)=>e.map((e,r)=>e/t[n][r])),e)}},arity:{}},"-":{evaluate:(e,t)=>{if(0===e.length)return 0;const[n,r]=Le(e,t);if("number"===n){const[e,...t]=r;return 0===t.length?-e:t.reduce((e,t)=>e-t,e)}if("vector"===n){const e=r[0];return r.slice(1).reduce((e,t)=>e.map((e,n)=>e-t[n]),e)}{const e=r[0];return r.slice(1).reduce((e,t)=>e.map((e,n)=>e.map((e,r)=>e-t[n][r])),e)}},arity:{}},quot:{evaluate:ze((e,t)=>Math.trunc(e/t)),arity:re(2)},mod:{evaluate:ze((e,t)=>e-t*Math.floor(e/t)),arity:re(2)},"%":{evaluate:ze((e,t)=>e%t),arity:re(2)},sqrt:{evaluate:De(e=>Math.sqrt(e)),arity:re(1)},cbrt:{evaluate:De(e=>Math.cbrt(e)),arity:re(1)},"^":{evaluate:ze((e,t)=>e**t),arity:re(2)},round:{evaluate:([e,t],n)=>{const[r,o]=Le([e],n);if("number"===r){if(void 0===t||0===t)return Math.round(o[0]);{ee(t,n,{integer:!0,positive:!0});const e=10**t;return Math.round(o[0]*e)/e}}if("vector"===r){const e=o[0];if(void 0===t||0===t)return e.map(e=>Math.round(e));{ee(t,n,{integer:!0,positive:!0});const r=10**t;return e.map(e=>Math.round(e*r)/r)}}{const e=o[0];if(void 0===t||0===t)return e.map(e=>e.map(e=>Math.round(e)));{ee(t,n,{integer:!0,positive:!0});const r=10**t;return e.map(e=>e.map(e=>Math.round(e*r)/r))}}},arity:{min:1,max:2}},trunc:{evaluate:De(e=>Math.trunc(e)),arity:re(1)},floor:{evaluate:De(e=>Math.floor(e)),arity:re(1)},ceil:{evaluate:De(e=>Math.ceil(e)),arity:re(1)},min:{evaluate:(e,t)=>{if(1===e.length&&Fe(e[0])){const n=e[0];return Te(n,t),n.reduce((e,t)=>Math.min(e,t),1/0)}const[n,...r]=e;return ee(n,t),r.reduce((e,n)=>(ee(n,t),Math.min(e,n)),n)},arity:{min:1}},max:{evaluate:(e,t)=>{if(1===e.length&&Fe(e[0])){const n=e[0];return Te(n,t),n.reduce((e,t)=>Math.max(e,t),-1/0)}const[n,...r]=e;return ee(n,t),r.reduce((e,n)=>(ee(n,t),Math.max(e,n)),n)},arity:{min:1}},abs:{evaluate:De(e=>Math.abs(e)),arity:re(1)},sign:{evaluate:De(e=>Math.sign(e)),arity:re(1)}};function qe([e,...t],n){const r=U(e,n);for(const e of t)if(!se(r,U(e,n),n))return!1;return!0}const Ke={"==":{evaluate:(e,t)=>qe(e,t),arity:{min:1}},"!=":{evaluate:(e,t)=>!qe(e,t),arity:{min:1}},"identical?":{evaluate:e=>function([e,...t]){for(const n of t)if(n!==e)return!1;return!0}(e),arity:{min:1}},">":{evaluate:([e,...t],n)=>{let r=H(e);for(const e of t){if(ae(r,H(e),n)<=0)return!1;r=H(e)}return!0},arity:{min:1}},"<":{evaluate:([e,...t],n)=>{let r=H(e);for(const e of t){if(ae(r,H(e),n)>=0)return!1;r=H(e)}return!0},arity:{min:1}},">=":{evaluate:([e,...t],n)=>{let r=H(e);for(const e of t){if(ae(r,H(e),n)<0)return!1;r=H(e)}return!0},arity:{min:1}},"<=":{evaluate:([e,...t],n)=>{let r=H(e);for(const e of t){if(ae(r,H(e),n)>0)return!1;r=H(e)}return!0},arity:{min:1}},not:{evaluate:([e])=>!e,arity:re(1)},"epoch->iso-date":{evaluate:([e],t)=>(ee(e,t),new Date(e).toISOString()),arity:re(1)},"iso-date->epoch":{evaluate:([e],t)=>{K(e,t);const n=new Date(e).valueOf();return ee(n,t,{finite:!0}),n},arity:re(1)},"write!":{evaluate:(e,t)=>(console.log(...e),e.length>0?U(e[e.length-1],t):null),pure:!1,arity:{}},boolean:{evaluate:([e])=>!!e,arity:re(1)},compare:{evaluate:([e,t],n)=>(X(e,n),X(t,n),ae(e,t,n)),arity:re(2)},"json-parse":{evaluate:([e],t)=>(K(e,t),JSON.parse(e)),arity:re(1)},"json-stringify":{evaluate:([e,t],n)=>(M(e,n),void 0===t?JSON.stringify(e):(ee(t,n),JSON.stringify(e,null,t))),arity:{min:1,max:2}}},Ye={keys:{evaluate:([e],t)=>(T(e,t),Object.keys(e)),arity:re(1)},vals:{evaluate:([e],t)=>(T(e,t),Object.values(e)),arity:re(1)},entries:{evaluate:([e],t)=>(T(e,t),Object.entries(e)),arity:re(1)},find:{evaluate:([e,t],n)=>(T(e,n),K(t,n),ie(e,t)?[t,e[t]]:null),arity:re(2)},dissoc:{evaluate:([e,t],n)=>{T(e,n),K(t,n);const r={...e};return delete r[t],r},arity:re(2)},merge:{evaluate:(e,t)=>{if(0===e.length)return null;const[n,...r]=e;return T(n,t),r.reduce((e,n)=>(T(n,t),{...e,...n}),{...n})},arity:{min:0}},"merge-with":{evaluate:(e,t,n,{executeFunction:r})=>{const o=e[0],i=e.at(-1),a=e.slice(1,-1);return T(o,t),W(i,t),be(a,(e,o)=>{T(o,t);return ve(be(Object.entries(o),(e,o)=>{const a=Y(o[0],t),s=ue(o[1]);return ie(e,a)?ve(r(i,[e[a],s],n,t),t=>(e[a]=t,e)):(e[a]=s,e)},e),e=>e)},{...o})},arity:{min:2}},zipmap:{evaluate:([e,t],n)=>{he(e,n),pe(t,n);const r=Math.min(e.length,t.length),o={};for(let i=0;i<r;i+=1){o[Y(e[i],n)]=ue(t[i])}return o},arity:re(2)},"select-keys":{evaluate:([e,t],n)=>(he(t,n),T(e,n),t.reduce((t,n)=>(ie(e,n)&&(t[n]=ue(e[n])),t),{})),arity:re(2)}},Ge={"function?":{evaluate:([e])=>x(e),arity:re(1)},"string?":{evaluate:([e])=>"string"==typeof e,arity:re(1)},"number?":{evaluate:([e])=>"number"==typeof e,arity:re(1)},"integer?":{evaluate:([e])=>"number"==typeof e&&Z(e,{integer:!0}),arity:re(1)},"boolean?":{evaluate:([e])=>"boolean"==typeof e,arity:re(1)},"null?":{evaluate:([e])=>null==e,arity:re(1)},"zero?":{evaluate:([e],t)=>(ee(e,t,{finite:!0}),Math.abs(e)<fe),arity:re(1)},"pos?":{evaluate:([e],t)=>(ee(e,t,{finite:!0}),e>0),arity:re(1)},"neg?":{evaluate:([e],t)=>(ee(e,t,{finite:!0}),e<0),arity:re(1)},"even?":{evaluate:([e],t)=>(ee(e,t,{finite:!0}),e%2==0),arity:re(1)},"odd?":{evaluate:([e],t)=>(ee(e,t,{finite:!0}),Z(e,{integer:!0})&&e%2!=0),arity:re(1)},"array?":{evaluate:([e])=>Array.isArray(e),arity:re(1)},"collection?":{evaluate:([e])=>R(e),arity:re(1)},"sequence?":{evaluate:([e])=>V(e),arity:re(1)},"object?":{evaluate:([e])=>B(e),arity:re(1)},"regexp?":{evaluate:([e])=>L(e),arity:re(1)},"finite?":{evaluate:([e],t)=>(ee(e,t),Number.isFinite(e)),arity:re(1)},"positive-infinity?":{evaluate:([e],t)=>(ee(e,t),e===Number.POSITIVE_INFINITY),arity:re(1)},"negative-infinity?":{evaluate:([e],t)=>(ee(e,t),e===Number.NEGATIVE_INFINITY),arity:re(1)},"true?":{evaluate:([e])=>!0===e,arity:re(1)},"false?":{evaluate:([e])=>!1===e,arity:re(1)},"empty?":{evaluate:([e],t)=>null===e||(_(e,t),"string"==typeof e||Array.isArray(e)?0===e.length:0===Object.keys(e).length),arity:re(1)},"not-empty?":{evaluate:([e],t)=>null!==e&&(_(e,t),"string"==typeof e||Array.isArray(e)?e.length>0:Object.keys(e).length>0),arity:re(1)},"vector?":{evaluate:([e])=>Fe(e),arity:re(1)},"matrix?":{evaluate:([e])=>_e(e),arity:re(1)},"grid?":{evaluate:([e])=>Re(e),arity:re(1)}},He={regexp:{evaluate:([e,t],r)=>{K(e,r);const o=e||"(?:)",i="string"==typeof t?t:"";try{new RegExp(o,i)}catch(e){throw new n(`Invalid regular expression: ${o} ${i}`,r)}return{[d]:!0,sourceCodeInfo:r,s:o,f:i}},arity:{min:1,max:2}},"re-match":{evaluate:([e,t],n)=>{if(function(e,t){if(!L(e))throw m("RegularExpression",e,t)}(t,n),!q(e))return null;const r=new RegExp(t.s,t.f).exec(e);return r?[...r]:null},arity:re(2)},replace:{evaluate:([e,t,n],r)=>{K(e,r),D(t,r),K(n,r);const o=L(t)?new RegExp(t.s,`${t.f}`):t;return e.replace(o,n)},arity:re(3)},"replace-all":{evaluate:([e,t,n],r)=>{K(e,r),D(t,r),K(n,r);const o=L(t)?new RegExp(t.s,`${t.f.includes("g")?t.f:`${t.f}g`}`):t;return e.replaceAll(o,n)},arity:re(3)}},Xe=/^\s*$/,Qe={str:{evaluate:e=>e.reduce((e,t)=>e+(null==t?"":B(t)||Array.isArray(t)?JSON.stringify(t):`${t}`),""),arity:{}},number:{evaluate:([e],t)=>{K(e,t);const r=Number(e);if(Number.isNaN(r))throw new n(`Could not convert '${e}' to a number.`,t);return r},arity:re(1)},"lower-case":{evaluate:([e],t)=>(K(e,t),e.toLowerCase()),arity:re(1)},"upper-case":{evaluate:([e],t)=>(K(e,t),e.toUpperCase()),arity:re(1)},trim:{evaluate:([e],t)=>(K(e,t),e.trim()),arity:re(1)},join:{evaluate:([e,t],n)=>(pe(e,n),e.forEach(e=>X(e,n)),K(t,n),e.join(t)),arity:re(2)},split:{evaluate:([e,t,n],r)=>{K(e,r),D(t,r),void 0!==n&&ee(n,r,{integer:!0,nonNegative:!0});const o="string"==typeof t?t:new RegExp(t.s,t.f);return e.split(o,n)},arity:{min:2,max:3}},"blank?":{evaluate:([e],t)=>null===e||(K(e,t),Xe.test(e)),arity:re(1)}},Ze={"|>":{evaluate:([e,t],n,r,{executeFunction:o})=>(W(t,n),o(t,[e],r,n)),arity:re(2)},apply:{evaluate:([e,...t],n,r,{executeFunction:o})=>{W(e,n);const i=t[t.length-1];pe(i,n);return o(e,[...t.slice(0,-1),...i],r,n)},arity:{min:2}},identity:{evaluate:([e])=>ue(e),arity:re(1)},comp:{evaluate:(e,t)=>{return e.forEach(e=>W(e,t)),{[f]:!0,sourceCodeInfo:t,functionType:"Comp",params:e,arity:e.length>0?(n=e.at(-1),"number"==typeof n||R(n)?re(1):n.arity):{min:1,max:1}};var n},arity:{}},constantly:{evaluate:([e],t)=>({[f]:!0,sourceCodeInfo:t,functionType:"Constantly",value:ue(e),arity:{}}),arity:re(1)}};function et(e){return de(`\n ${e.title}\n\n ${e.description.replace(/`(.+?)`/g,"$1").replace(/\$(\w+)/g,"$1").replace(/\*\*\*(.+)\*\*\*/g,"$1").replace(/\*\*(.+)\*\*/g,"$1")}\n\n Signature:\n ${function({title:e,variants:t,args:n,returns:r,_isOperator:o}){const i=t.map(t=>`${` ${e}(${t.argumentNames.map(e=>{let t="";return n[e].rest&&(t+="..."),t+=e,t}).join(", ")})`} -> ${tt(r)}`),a=o?["","Operator:",` a ${e} b -> ${tt(r)}`]:[];return[...i,...a]}(e).join("\n ")}\n\n Arguments:\n ${function(e){return Object.entries(e.args).map(([e,t])=>`${e}: ${tt(t)}`)}(e).join("\n ")}\n\n Examples:\n${e.examples.map(e=>de(e,4)).join("\n\n")}`)}function tt(e){const t=e.type,n=(Array.isArray(t)?t:[t]).join(" | ");return e.array||e.rest?`Array<${n}>`:n}const nt={sum:{evaluate:([e],t)=>(Be(e,t),e.reduce((e,t)=>e+t,0)),arity:re(1)},prod:{evaluate:([e],t)=>(Be(e,t),e.reduce((e,t)=>e*t,1)),arity:re(1)},mean:{evaluate:([e],t)=>(Te(e,t),e.reduce((e,t)=>e+t,0)/e.length),arity:re(1)},median:{evaluate:([e],t)=>(Te(e,t),function(e){const t=[...e].sort((e,t)=>e-t),n=Math.floor(t.length/2);return t.length%2==0?(t[n-1]+t[n])/2:t[n]}(e)),arity:re(1)}},rt={...Q,...oe,...Ne,...Pe,...$e,...We,...function(e){return{doc:{evaluate:([t],n)=>{if(w(e),W(t,n),!x(t))return"";if("Builtin"===t.functionType){const n=e[t.name];return n?et(n):""}return"UserDefined"===t.functionType||"NativeJsFunction"===t.functionType?t.docString:""},arity:re(1)},arity:{evaluate:([e],t)=>(W(e,t),x(e)?e.arity:re(1)),arity:re(1)}}}({}),...Ke,...Ye,...Ge,...He,...Qe,...Ze,...nt};Object.entries(rt).forEach(([e,t])=>{t.name=e});const ot={...rt},it={},at=[];Object.entries(ot).forEach(([e,t],n)=>{it[e]=n,at.push(t)});const st={arity:{},evaluateAsNormalExpression:(e,t)=>{let n=!0;for(const r of e)if(n=U(r,t),!n)break;return n},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1],t,r,o)},ut=11,ct=12,lt=13,ft=14,dt=15,pt=16;function ht(e,t){if(e[0]===lt)Object.values(e[1][0]).forEach(e=>{e[1][1]&&t(e[1][1]),ht(e,t)});else if(e[0]===ft)for(let n=0;n<e[1][0].length;n+=1){const r=e[1][0][n]??null;null!==r&&(r[1][1]&&t(r[1][1]),ht(r,t))}}function yt(e,t,n){const r=e[2],o={};return ve(vt(e,t,n,r,o),()=>o)}function vt(e,t,r,o,i){if(e[0]===lt){!function(e,t){if(!k(e))throw new n(`Expected UnknownRecord, got ${v(e)}.`,g(e,t))}(t,o);const a=new Set;let s;return ve(ke(Object.entries(e[1][0]),([e,n])=>{if(n[0]===ct)return void(s=n);a.add(e);const u=t[e];return ve(void 0!==u?u:n[1][1]?r(n[1][1]):null,e=>{const t=e??null;return M(t,o),vt(n,t,r,o,i)})}),()=>{if(s){const e=Object.entries(t).filter(([e])=>!a.has(e)).reduce((e,[t,n])=>(e[t]=U(n),e),{});i[s[1][0]]=e}})}if(e[0]===ft){let n=null;pe(t,o);const a=[];for(let t=0;t<e[1][0].length;t+=1){const r=e[1][0][t]??null;if(null!==r){if(r[0]===ct){n=t;break}a.push({element:r,index:t})}}return ve(ke(a,({element:e,index:n})=>{const a=t[n];return ve(void 0!==a?a:e[1][1]?r(e[1][1]):null,t=>{const n=t??null;return M(n,o),vt(e,n,r,o,i)})}),()=>{if(null!==n){const r=t.slice(n),o=e[1][0][n];i[o[1][0]]=r}})}e[0]===ct?i[e[1][0]]=U(t):i[e[1][0][1]]=U(t)}function gt(e){const t={};return mt(e,t),t}function mt(e,t){if(null!==e)if(e[0]===ft)for(const n of e[1][0])mt(n,t);else if(e[0]===lt)for(const n of Object.values(e[1][0]))mt(n,t);else if(e[0]===ct){if(t[e[1][0]])throw new n(`Duplicate binding name: ${e[1][0]}`,e[2]);t[e[1][0]]=!0}else if(e[0]===ut){if(t[e[1][0][1]])throw new n(`Duplicate binding name: ${e[1][0]}`,e[2]);t[e[1][0][1]]=!0}}function bt(e,t,n){const r={};return ve(wt(e,t,n,r),e=>e?r:null)}function wt(e,t,n,r){if(e[0]===pt)return!0;if(e[0]===dt){const r=e[1][0];return ve(n(r),e=>se(t,e))}if(e[0]===ut){const o=e[1][0],i=e[1][1];if(null==t){if(i)return ve(n(i),e=>(r[o[1]]=U(e),!0));r[o[1]]=t??null}else r[o[1]]=U(t);return!0}if(e[0]===lt){if(!k(t))return!1;const o=new Set;let i;const a=Object.entries(e[1][0]);let s=!0;for(const[e,u]of a)s=ve(s,a=>{if(!a)return!1;if(u[0]===ct)return i=u,!0;o.add(e);const s=t[e];if(void 0===s&&u[0]===dt)return ve(n(u[1][0]),e=>se(void 0,e));return ve(void 0!==s?s:u[1]&&u[1][1]?n(u[1][1]):null,e=>wt(u,e??null,n,r))});return ve(s,e=>{if(!e)return!1;if(i){const e=Object.entries(t).filter(([e])=>!o.has(e)).reduce((e,[t,n])=>(e[t]=U(n),e),{});r[i[1][0]]=e}return!0})}{const o=e;if(!Array.isArray(t))return!1;const i=o[1][0];let a=null;for(let e=0;e<i.length;e+=1){const t=i[e];if(null!==t&&t[0]===ct){a=e;break}}if(null===a&&t.length!==i.length)return!1;if(null!==a&&t.length<a)return!1;let s=!0;for(let e=0;e<i.length;e+=1){const o=i[e];if(null===o)continue;if(o[0]===ct){r[o[1][0]]=t.slice(e);break}const a=o;s=ve(s,o=>!!o&&wt(a,U(t[e]),n,r))}return s}}const kt={arity:{},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>{const i=new Set;n([e[1][1]],t,r,o).forEach(e=>i.add(e));for(const[a,s,u]of e[1][2]){const e={};Object.assign(e,gt(a));const c=t.create(e);u&&n([u],c,r,o).forEach(e=>i.add(e)),n([s],c,r,o).forEach(e=>i.add(e))}return i}},xt={arity:re(1),getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n([e[1][1]],t,r,o)},Et={arity:{},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>function(e,t,n,r,o){const i=new Set,a={self:{value:null}};e[0].forEach(e=>{Object.assign(a,gt(e)),ht(e,e=>{le(i,n([e],t,r,o))})});const s=t.create(a),u=n(e[1],s,r,o);return le(i,u),i}(e[1][1],t,n,r,o)};const St={arity:re(0),getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>{const i=e[1][1],a=i[1][0],s=i[1][1],u=n([s],t,r,o);return ht(a,e=>{le(u,n([e],t,r,o))}),t.addValues(gt(a),a[2]),u}},Nt={arity:{},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>{const i=e[1][1],a=i.reduce((e,t)=>{const n=gt(t[1][0]);return Object.keys(n).forEach(t=>{e[t]={value:!0}}),e},{});return ce(n(i.map(e=>e[1][1]),t,r,o),n([e[1][2]],t.create(a),r,o))}};function Pt(e,t,n,r,o){const i=new Set,a={},[,s,u]=e[1];return s.forEach(e=>{const[s,u,c,l]=e,[f,d]=s[1];n([d],t.create(a),r,o).forEach(e=>i.add(e)),Object.assign(a,gt(f)),u&&u.forEach(e=>{const[s,u]=e[1];n([u],t.create(a),r,o).forEach(e=>i.add(e)),Object.assign(a,gt(s))}),c&&n([c],t.create(a),r,o).forEach(e=>i.add(e)),l&&n([l],t.create(a),r,o).forEach(e=>i.add(e))}),n([u],t.create(a),r,o).forEach(e=>i.add(e)),i}const $t={arity:re(1),getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>Pt(e,t,n,r,o)},Ct={arity:re(1),getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>Pt(e,t,n,r,o)},It={arity:{},evaluateAsNormalExpression:(e,t)=>{let n=!1;for(const r of e)if(n=U(r,t),n)break;return n},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1],t,r,o)},At={arity:{min:1},evaluateAsNormalExpression:(e,t)=>{for(const n of e){const e=U(n,t);if(null!==e)return e}return null},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1],t,r,o)},jt={arity:{},evaluateAsNormalExpression:e=>{throw new t(e)},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1],t,r,o)},Ot={arity:re(1),evaluateAsNormalExpression:(e,t)=>{const n=Y(e[0],t,{nonEmpty:!0});throw new r(n,void 0)},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n([e[1][1]],t,r,o)},Ut={arity:{},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>{const[,i,a,s,u]=e[1],c=n([i],t,r,o);let l=new Set;if(s){const e=a?{[a[1]]:{value:!0}}:{};l=n([s],t.create(e),r,o)}let f=new Set;for(const[e,i]of u){f=ce(f,n([e],t,r,o),n([i],t,r,o))}return ce(c,l,f)}},Mt={arity:{},evaluateAsNormalExpression:(e,t)=>{const n=[];for(const r of e)n.push(U(r,t));return n},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1],t,r,o)},Vt={arity:{},getUndefinedSymbols:()=>new Set},Ft={arity:{},evaluateAsNormalExpression:(e,t)=>{const n={};for(let r=0;r<e.length;r+=2){const o=e[r],i=e[r+1];K(o,t),n[o]=i??null}return n},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1],t,r,o)},Bt={arity:re(1),getUndefinedSymbols:()=>new Set},Tt={arity:{min:1},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>ce(...e[1][1].map(e=>n([e],t,r,o)))},Rt={arity:{min:1},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>{const[,i,a]=e[1];return ce(n([i],t,r,o),n(a,t,r,o))}},_t={arity:{min:1},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>ce(...e[1][1].map(e=>n([e],t,r,o)))},Lt={"??":0,"&&":1,"||":2,array:3,cond:4,"defined?":5,block:6,doseq:7,"0_lambda":8,for:9,if:10,let:11,loop:12,object:13,recur:14,match:15,throw:16,try:17,unless:18,import:19,effect:20,perform:21,parallel:22,race:23},Dt=[At,st,It,Mt,{arity:{},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1].flat(),t,r,o)},xt,{arity:{},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1],t.create({}),r,o)},Ct,Et,$t,{arity:{min:2,max:3},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1].filter(e=>!!e),t,r,o)},St,Nt,Ft,jt,kt,Ot,Ut,{arity:{},getUndefinedSymbols:(e,t,{getUndefinedSymbols:n,builtin:r,evaluateNode:o})=>n(e[1][1].filter(e=>!!e),t,r,o)},Bt,Vt,Rt,Tt,_t],zt={normalExpressions:ot,specialExpressions:Dt,allNormalExpressions:at},Jt=Object.keys(ot),Wt=Object.keys(Lt);function qt(e){return s.UserDefinedSymbol===e[0]}function Kt(e,t){return function(e,t){if(!qt(e))throw m("UserDefinedSymbolNode",e,t)}(e,t),e}function Yt(e){return s.NormalBuiltinSymbol===e[0]}function Gt(e){return s.SpecialBuiltinSymbol===e[0]}function Ht(e){return!!function(e){return e[0]===s.NormalExpression}(e)&&function(e){const t=e[0];return s.UserDefinedSymbol===t||s.NormalBuiltinSymbol===t||s.SpecialBuiltinSymbol===t}(e[1][0])}function Xt(e){return e[0]===s.Spread}const Qt=(e,t,n,r)=>{const o=Array.isArray(e)?e:[[s.SpecialExpression,[Lt.block,e.body]]],i=new Set;for(const e of o)Zt(e,t,n,r)?.forEach(e=>i.add(e));return i};function Zt(e,t,r,o){const i=e[0];switch(i){case s.UserDefinedSymbol:{const n=e;return null===t.lookUp(n)?new Set([n[1]]):null}case s.NormalBuiltinSymbol:case s.SpecialBuiltinSymbol:case s.String:case s.Number:case s.ReservedSymbol:case s.Binding:return null;case s.NormalExpression:{const n=e,i=new Set;if(Ht(n)){const[,[e]]=n;if(qt(e)){null===t.lookUp(e)&&i.add(e[1])}}else{const[,[e]]=n;Zt(e,t,r,o)?.forEach(e=>i.add(e))}for(const e of n[1][1])Zt(e,t,r,o)?.forEach(e=>i.add(e));return i}case s.SpecialExpression:{const n=e,i=n[1][0];return(0,r.specialExpressions[i].getUndefinedSymbols)(n,t,{getUndefinedSymbols:Qt,builtin:r,evaluateNode:o})}case s.Spread:return Zt(e[1],t,r,o);default:throw new n(`Unhandled node type: ${i}`,e[2])}}const en=["^","*","/","%","+","-","<<",">>",">>>","++","<","<=","≤",">",">=","≥","==","!=","!=","&","xor","|","&&","||","??","|>"],tn=[...en,"?",":","->","...",".",",","=",":",";"],nn=new Set(["comment","cond","defined?","block","doseq","if","let","loop","recur","throw","try","unless","while"]);function rn(e){return!nn.has(e)}const on=new Set(en);function an(e){return on.has(e)}const sn=new Set(tn);function un(e){return sn.has(e)}function cn(e,t){return"Symbol"===e?.[0]&&(!t||e[1]===t)}function ln(e,t){return function(e,t){cn(e,t)||jn("Symbol",void 0,e)}(e,t),e}function fn(e,t){return"ReservedSymbol"===e?.[0]&&(!t||e[1]===t)}function dn(e,t){fn(e,t)||jn("ReservedSymbol",t,e)}function pn(e,t){return dn(e,t),e}function hn(e,t){return"Operator"===e?.[0]&&(!t||e[1]===t)}function yn(e,t){hn(e,t)||jn("Operator",t,e)}function vn(e){return"Number"===e?.[0]}function gn(e){return"BasePrefixedNumber"===e?.[0]}function mn(e){return"LParen"===e?.[0]}function bn(e){mn(e)||jn("LParen",void 0,e)}function wn(e){return"RParen"===e?.[0]}function kn(e){wn(e)||jn("RParen",void 0,e)}function xn(e){return"LBracket"===e?.[0]}function En(e){return function(e){xn(e)||jn("LBracket",void 0,e)}(e),e}function Sn(e){return"RBracket"===e?.[0]}function Nn(e){Sn(e)||jn("RBracket",void 0,e)}function Pn(e){return"LBrace"===e?.[0]}function $n(e){return function(e){Pn(e)||jn("LBrace",void 0,e)}(e),e}function Cn(e){return"RBrace"===e?.[0]}function In(e){return"string"===e?.[0]}function An(e){return"Operator"===e?.[0]&&an(e[1])}function jn(e,t,r){const o=r?`${r[0]} '${r[1]}'`:"end of input";throw new n(`Unexpected token: ${o}, expected ${e}${t?` '${t}'`:""}`,r?.[2])}function On(e,t){return t&&(e[2]=t),e}function Un(e,t){return void 0!==Lt[e]&&"fn"!==e&&"defn"!==e?On([s.SpecialBuiltinSymbol,Lt[e]],t):void 0!==it[e]?On([s.NormalBuiltinSymbol,it[e]],t):On([s.UserDefinedSymbol,e],t)}function Mn(e){return e.substring(1,e.length-1).replace(/(\\{2})|(\\')|\\(.)/g,(e,t,n,r)=>t?"\\":n?"'":`\\${r}`)}const Vn=Object.entries(it).reduce((e,[t,n])=>(e[n]=t,e),[]),Fn=Object.entries(Lt).reduce((e,[t,n])=>(e[n]=t,e),[]);function Bn(e){return qt(e)?e[1]:Yt(e)?Vn[e[1]]:Fn[e[1]]}function Tn(e,t,n){const r=On([s.NormalExpression,[e,t]],n);return Yt(e)&&ne(at[e[1]].arity,r[1][1].length,n),r}function Rn(e){if(e.isAtEnd())return!0;const t=e.tryPeek();return hn(t)?[";",",",":"].includes(t[1]):!!fn(t)&&["else","when","while","case","catch","let","then","end","do"].includes(t[1])}function _n(e,t,r,o,i){const a=e[1];switch(a){case"^":case"*":case"/":case"%":case"+":case"-":case"<<":case">>":case">>>":case"++":case"<":case"<=":case"≤":case">":case">=":case"≥":case"==":case"!=":case"&":case"xor":case"|":case"|>":return Tn(t,[r,o],i);case"&&":case"||":case"??":return On([s.SpecialExpression,[Lt[a],[r,o]]],i);default:throw new n(`Unknown binary operator: ${a}`,i)}}class Ln{tokens;position;storedPosition=0;parseExpression;constructor(e){this.tokens=e.tokens,this.position=0}advance(){this.position+=1}tryPeek(){return this.tokens[this.position]}peek(){const e=this.tokens[this.position];if(!e){const e=this.tokens.at(-1),t=e?e[2]:void 0;throw new n("Unexpected end of input",t)}return e}isAtEnd(){return this.position>=this.tokens.length}peekSourceCodeInfo(){const e=this.tryPeek();return e?e[2]:this.tokens.at(-1)?.[2]}storePosition(){return this.storedPosition=this.position}restorePosition(){this.position=this.storedPosition}peekAhead(e){return this.tokens[this.position+e]}getPosition(){return this.position}getTokenAt(e){return this.tokens[e]}}function Dn(e,t){switch(e){case"^":return 12;case"*":case"/":case"%":return 11;case"+":case"-":return 10;case"<<":case">>":case">>>":return 9;case"++":return 8;case"<":case"<=":case"≤":case">":case">=":case"≥":return 7;case"==":case"!=":return 6;case"&":case"xor":case"|":return 5;case"&&":case"||":case"??":return 4;case"|>":return 2;default:throw new n(`Unknown binary operator: ${e}`,t)}}function zn(e,t){const r=[];for(;!e.isAtEnd()&&!Jn(e,t);)hn(e.tryPeek(),";")?e.advance():r.push(e.parseExpression());if(function(e,t){if(!Jn(e,t))throw new n(`Expected ${t.map(e=>e[1]).join(" or ")}`,e.peekSourceCodeInfo())}(e,t),0===r.length)throw new n("Expected expression",e.peekSourceCodeInfo());return 1===r.length?r[0]:On([s.SpecialExpression,[Lt.block,r]],e.peekSourceCodeInfo())}function Jn(e,t){for(const n of t)if(fn(e.tryPeek(),n))return!0;return!1}function Wn(e,t){e.advance();const n=t[1].substring(1,t[1].length-1).replace(/(\\{2})|(\\")|(\\n)|(\\t)|(\\r)|(\\b)|(\\f)|\\(.)/g,(e,t,n,r,o,i,a,s,u)=>t?"\\":r?"\n":o?"\t":i?"\r":a?"\b":s?"\f":n?'"':u);return On([s.String,n],t[2])}function qn(e,t=!1){const r=pn(e.tryPeek(),"do");e.advance();let o="";t&&function(e){return"DocString"===e?.[0]}(e.tryPeek())&&(o=function(e){const t=e.peek(),n=t[2]?["string",t[1].slice(2,-2),t[2]]:["string",t[1].slice(2,-2)],r=Wn(e,n);return de(r[1])}(e),e.isAtEnd()||fn(e.tryPeek(),"end")||(yn(e.tryPeek(),";"),e.advance()));const i=[];for(;!e.isAtEnd()&&!fn(e.tryPeek(),"end");)if(i.push(e.parseExpression()),hn(e.tryPeek(),";"))e.advance();else if(!fn(e.tryPeek(),"end"))throw new n("Expected end",e.peekSourceCodeInfo());return dn(e.tryPeek(),"end"),e.advance(),[On([s.SpecialExpression,[Lt.block,i]],r[2]),o]}function Kn(e){const t=e.peek();if(e.advance(),!cn(t))throw new n(`Expected symbol token, got ${t[0]}`,t[2]);return"'"===t[1][0]?Un(Mn(t[1]),t[2]):Un(t[1],t[2])}function Yn(e){const t=e.peek();e.advance();const n=t[1],r="-"===n[0],o=(r?n.substring(1):n).replace(/_/g,"");return On([s.Number,r?-Number(o):Number(o)],t[2])}function Gn(e,{requireDefaultValue:t,noRest:r,allowLiteralPatterns:o}={}){const i=e.tryPeek();if(o&&fn(i,"_"))return e.advance(),On([pt,[]],i[2]);if(o&&Xn(i)){if(vn(i)||gn(i)){const t=Yn(e);return On([dt,[t]],i[2])}if(In(i)){const t=Wn(e,i);return On([dt,[t]],i[2])}if(fn(i,"true")){e.advance();const t=On([s.ReservedSymbol,"true"],i[2]);return On([dt,[t]],i[2])}if(fn(i,"false")){e.advance();const t=On([s.ReservedSymbol,"false"],i[2]);return On([dt,[t]],i[2])}if(fn(i,"null")){e.advance();const t=On([s.ReservedSymbol,"null"],i[2]);return On([dt,[t]],i[2])}}if(cn(i)){const r=Kn(e);if(!qt(r))throw new n("Expected user defined symbol",i[2]);const o=Hn(e);if(t&&!o)throw new n("Expected assignment",e.peekSourceCodeInfo());return On([ut,[r,o]],i[2])}if(hn(i,"...")){if(r)throw new n("Rest element not allowed",i[2]);e.advance();const t=Kt(Kn(e));if(hn(e.tryPeek(),"="))throw new n("Rest argument can not have default value",e.peekSourceCodeInfo());return On([ct,[t[1],void 0]],i[2])}if(xn(i)){e.advance();const r=[];let a=e.peek(),s=!1;for(;!Sn(a);){if(s)throw new n("Rest argument must be last",a[2]);if(hn(a,",")){r.push(null),e.advance(),a=e.peek();continue}const t=Gn(e,{allowLiteralPatterns:o});t[0]===ct&&(s=!0),r.push(t),a=e.peek(),Sn(a)||(yn(a,","),e.advance()),a=e.peek()}e.advance();const u=Hn(e);if(t&&!u)throw new n("Expected assignment",e.peekSourceCodeInfo());return On([ft,[r,u]],i[2])}if(Pn(i)){e.advance();const r={};let a=e.peek(),s=!1;for(;!Cn(a);){if(s)throw new n("Rest argument must be last",a[2]);hn(a,"...")&&(s=!0,e.advance());const t=Kn(e),u=Bn(t);if(a=e.peek(),fn(a,"as")){if(s)throw new n("Rest argument can not have alias",a[2]);e.advance();const t=Kt(Kn(e));if(r[t[1]])throw new n(`Duplicate binding name: ${t}`,a[2]);r[u]=On([ut,[t,Hn(e)]],i[2])}else if(Cn(a)||hn(a,",")||hn(a,"=")){const o=Kt(t,t[2]);if(r[o[1]])throw new n(`Duplicate binding name: ${o}`,a[2]);if(s&&hn(e.tryPeek(),"="))throw new n("Rest argument can not have default value",e.peekSourceCodeInfo());r[o[1]]=On(s?[ct,[o[1],Hn(e)]]:[ut,[o,Hn(e)]],i[2])}else if(hn(a,":")){if(e.advance(),a=e.peek(),o){if(!Pn(a)&&!xn(a)&&!Xn(a))throw new n("Expected literal, object or array pattern",a[2])}else if(!Pn(a)&&!xn(a))throw new n("Expected object or array",a[2]);r[u]=Gn(e,{allowLiteralPatterns:o})}Cn(e.peek())||(yn(e.peek(),","),e.advance()),a=e.peek()}e.advance(),a=e.peek();const u=Hn(e);if(t&&!u)throw new n("Expected assignment",a[2]);return On([lt,[r,u]],i[2])}throw new n("Expected symbol",e.peekSourceCodeInfo())}function Hn(e){if(hn(e.tryPeek(),"="))return e.advance(),e.parseExpression()}function Xn(e){return vn(e)||gn(e)||In(e)||fn(e,"true")||fn(e,"false")||fn(e,"null")}function Qn(e,t){e.advance();const n=Gn(e,{requireDefaultValue:!0,noRest:!0}),r=n[1][1];n[1][1]=void 0;const o=On([s.Binding,[n,r]],t[2]);return On([s.SpecialExpression,[Lt.let,o]],t[2])}function Zn(e){const t=function(e){const t=ln(e.tryPeek()),n=Kt(Kn(e));dn(e.tryPeek(),"in"),e.advance();const r=e.parseExpression();return On([s.Binding,[On([ut,[n,void 0]],t[2]),r]],t[2])}(e),r=[];let o=e.peek();er(o,["let","when","while"]);const i=[];if("let"===o[1])for(r.push("&let");cn(o,"let");){const t=Qn(e,o),r=i.flatMap(e=>Object.keys(gt(e[1][0])));if(Object.keys(gt(t[1][1][1][0])).some(e=>r.includes(e)))throw new n("Duplicate binding",t[1][1][2]);i.push(t[1][1]),o=e.peek(),er(o,["let","when","while"]),o=e.peek()}let a,u;for(;fn(o,"when")||fn(o,"while");){e.advance(),"when"===o[1]?(r.push("&when"),a=e.parseExpression()):(r.push("&while"),u=e.parseExpression()),o=e.peek();er(o,r.includes("&when")&&r.includes("&while")?[]:r.includes("&when")?["while"]:["when"]),o=e.peek()}return er(o,[]),[t,i,a,u]}function er(e,t){if(!function(e,t){if(hn(e,",")||wn(e))return!0;for(const n of t){if("let"===n&&cn(e,"let"))return!0;if(["when","while"].includes(n)&&fn(e,n))return!0}return!1}(e,t)){const r=`${[...t,","].map(e=>`"${e}"`).join(", ")} or ")"`;throw new n(`Expected symbol ${r}`,e[2])}}const tr=(1+Math.sqrt(5))/2,nr={E:Math.E,"-E":-Math.E,"ε":Math.E,"-ε":-Math.E,PI:Math.PI,"-PI":-Math.PI,"π":Math.PI,"-π":-Math.PI,PHI:tr,"-PHI":-tr,"φ":tr,"-φ":-tr,POSITIVE_INFINITY:Number.POSITIVE_INFINITY,"∞":Number.POSITIVE_INFINITY,NEGATIVE_INFINITY:Number.NEGATIVE_INFINITY,"-∞":Number.NEGATIVE_INFINITY,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,MIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER,MAX_VALUE:Number.MAX_VALUE,MIN_VALUE:Number.MIN_VALUE,NaN:Number.NaN},rr={true:!0,false:!1,null:null,do:null,else:null,case:null,each:null,in:null,when:null,while:null,catch:null,function:null,as:null,then:null,end:null,with:null,_:null,...nr};function or(e){const t=pn(e.tryPeek());e.advance();const n=t[1];return function(e){return e in nr}(n)?On([s.Number,nr[n]],t[2]):On([s.ReservedSymbol,t[1]],t[2])}const ir=/^\$([1-9]\d?)?$/;function ar(e){const t=e.peek();if(mn(t)&&cn(e.peekAhead(1))&&hn(e.peekAhead(2),"->"))return null;try{const r=function(e){const t=e.peek();if(cn(t))return[On([ut,[Kn(e),void 0]],t[2])];bn(t),e.advance();let r=!1,o=!1;const i=[];for(;!e.isAtEnd()&&!wn(e.peek())&&!cn(e.peek(),"let");){if(r)throw new n("Rest argument must be last",e.peekSourceCodeInfo());const t=Gn(e);if(void 0!==t[1][1]&&(o=!0),t[0]===ct&&(r=!0),o&&!t[1][1])throw new n("Default arguments must be last",e.peekSourceCodeInfo());if(i.push(t),!hn(e.peek(),",")&&!wn(e.peek())&&!cn(e.peek(),"let"))throw new n("Expected comma or closing parenthesis",e.peekSourceCodeInfo());hn(e.peek(),",")&&e.advance()}if(!wn(e.peek()))throw new n("Expected closing parenthesis",e.peekSourceCodeInfo());return e.advance(),i}(e);if(!hn(e.peek(),"->"))return null;let o;e.advance();let i="";if(fn(e.peek(),"do")){const t=qn(e,!0);i=t[1],o=t[0][1][1]}else o=[e.parseExpression()];return On([s.SpecialExpression,[Lt["0_lambda"],[r,o],i]],t[2])}catch{return null}}function sr(e,t){if(e.advance(),Gt(t)&&t[1]===Lt.effect)return function(e,t){const r=t[2],o=e.peek();if(!cn(o))throw new n("effect expects a dotted name identifier",o[2]);let i=o[1];e.advance();for(;hn(e.tryPeek(),".");){e.advance();const t=e.peek();if(!cn(t))throw new n("Expected identifier after dot in effect name",t[2]);i+=`.${t[1]}`,e.advance()}if(!wn(e.tryPeek()))throw new n("Expected closing parenthesis after effect name",e.peekSourceCodeInfo());return e.advance(),On([s.SpecialExpression,[Lt.effect,i]],r)}(e,t);const r=[];for(;!e.isAtEnd()&&!wn(e.tryPeek());){hn(e.tryPeek(),"...")?(e.advance(),r.push(On([s.Spread,e.parseExpression()],e.peekSourceCodeInfo()))):r.push(e.parseExpression());const t=e.tryPeek();if(!hn(t,",")&&!wn(t))throw new n("Expected comma or closing parenthesis",e.tryPeek()?.[2]);hn(t,",")&&e.advance()}if(!wn(e.tryPeek()))throw new n("Expected closing parenthesis",e.peekSourceCodeInfo());if(e.advance(),!Gt(t))return Yt(t)||qt(t)?Tn(t,r,t[2]):On([s.NormalExpression,[t,r]],t[2]);{const e=t[1];if(e===Lt.import){if(1!==r.length)throw new n(`import expects exactly 1 argument, got ${r.length}`,t[2]);const o=r[0];if(!qt(o))throw new n("import expects a module name (symbol), got a non-symbol argument",o[2]??t[2]);const i=o[1];return On([s.SpecialExpression,[e,i]],t[2])}const o=e;switch(ne(zt.specialExpressions[o].arity,r.length,t[2]),o){case Lt["||"]:case Lt["&&"]:case Lt.recur:case Lt.array:case Lt.object:case Lt["??"]:return On([s.SpecialExpression,[o,r]],t[2]);case Lt["defined?"]:{const[e]=r;return On([s.SpecialExpression,[o,e]],t[2])}case Lt.throw:{const[e]=r;return On([s.SpecialExpression,[o,e]],t[2])}case Lt.perform:{const[e,...n]=r;return On([s.SpecialExpression,[o,e,n]],t[2])}case Lt.parallel:case Lt.race:return On([s.SpecialExpression,[o,r]],t[2]);case Lt["0_lambda"]:throw new n(`${o} is not allowed`,t[2]);default:throw new n(`Unknown special expression: ${o}`,t[2])}}}function ur(e){const t=$n(e.tryPeek());e.advance();const r=[];for(;!e.isAtEnd()&&!Cn(e.tryPeek());){if(hn(e.tryPeek(),"..."))e.advance(),r.push(On([s.Spread,e.parseExpression()],e.peekSourceCodeInfo()));else{const t=e.tryPeek();if(In(t)){const n=Wn(e,t);r.push(On([s.String,n[1]],t[2]))}else if(cn(t)){const n=t[1].startsWith("'")?Mn(t[1]):t[1];r.push(On([s.String,n],t[2])),e.advance()}else{if(!xn(t))throw new n("Expected key to be a symbol or a string",e.peekSourceCodeInfo());e.advance(),r.push(e.parseExpression()),Nn(e.tryPeek()),e.advance()}yn(e.tryPeek(),":"),e.advance(),r.push(e.parseExpression())}const t=e.tryPeek();if(!hn(t,",")&&!Cn(t))throw new n("Expected comma or closing brace",e.peekSourceCodeInfo());hn(t,",")&&e.advance()}var o;return Cn(o=e.tryPeek())||jn("RBrace",void 0,o),e.advance(),On([s.SpecialExpression,[Lt.object,r]],t[2])}function cr(e){let t=function(e){const t=e.peek();if(mn(t)){e.storePosition();const t=ar(e);if(t)return t;e.restorePosition(),e.advance();const r=e.parseExpression();if(!wn(e.peek()))throw new n("Expected closing parenthesis",e.peekSourceCodeInfo());return e.advance(),r}if(hn(t)){const r=t[1];if(an(r))return e.advance(),On(void 0!==Lt[r]?[s.SpecialBuiltinSymbol,Lt[r]]:[s.NormalBuiltinSymbol,it[r]],t[2]);if("->"===r)return function(e){const t=e.peek();e.advance();const r=e.getPosition();let o,i="";if(fn(e.peek(),"do")){const t=qn(e,!0);i=t[1],o=t[0][1][1]}else o=[e.parseExpression()];const a=e.getPosition()-1;let u=0,c="NOT_SET";for(let o=r;o<=a;o+=1){const r=e.getTokenAt(o);if(cn(r)){const e=ir.exec(r[1]);if(e){const r=e[1]??"1";if("1"===r){if(!e[1]&&"WITH_1"===c||e[1]&&"NAKED"===c)throw new n("Please make up your mind, either use $ or $1",t[2]);c=e[1]?"WITH_1":"NAKED"}if(u=Math.max(u,Number(r)),u>20)throw new n("Can't specify more than 20 arguments",t[2])}}}const l=[];for(let e=1;e<=u;e+=1)1===e&&"NAKED"===c?l.push(On([ut,[[s.UserDefinedSymbol,"$"],void 0]],t[2])):l.push(On([ut,[[s.UserDefinedSymbol,`$${e}`],void 0]],t[2]));return On([s.SpecialExpression,[Lt["0_lambda"],[l,o],i]],t[2])}(e);throw new n(`Illegal operator: ${r}`,t[2])}if(Pn(t))return ur(e);if(xn(t))return function(e){const t=En(e.tryPeek());e.advance();const r=[];for(;!e.isAtEnd()&&!Sn(e.tryPeek());){hn(e.tryPeek(),"...")?(e.advance(),r.push(On([s.Spread,e.parseExpression()],e.peekSourceCodeInfo()))):r.push(e.parseExpression());const t=e.tryPeek();if(!hn(t,",")&&!Sn(t))throw new n("Expected comma or closing parenthesis",e.peekSourceCodeInfo());hn(t,",")&&e.advance()}return Nn(e.tryPeek()),e.advance(),On([s.SpecialExpression,[Lt.array,r]],t[2])}(e);const r=t[0];switch(r){case"Number":case"BasePrefixedNumber":return Yn(e);case"string":return Wn(e,t);case"Symbol":{e.storePosition();const t=ar(e);return t||(e.restorePosition(),Kn(e))}case"ReservedSymbol":return or(e);case"RegexpShorthand":return function(e){const t=e.peek();e.advance();const n=t[1].lastIndexOf('"'),r=t[1].substring(2,n),o=t[1].substring(n+1),i=On([s.String,r],t[2]),a=On([s.String,o],t[2]);return On([s.NormalExpression,[On([s.NormalBuiltinSymbol,it.regexp],t[2]),[i,a]]],t[2])}(e);default:throw new n(`Unknown token type: ${r}`,t[2])}}(e),r=e.tryPeek();for(;hn(r,".")||xn(r)||mn(r);)if("."===r[1]){e.advance();const o=e.tryPeek();if(!cn(o))throw new n("Expected symbol",e.peekSourceCodeInfo());t=lr(t,On([s.String,o[1]],o[2]),r[2]),e.advance(),r=e.tryPeek()}else if(xn(r)){e.advance();const o=e.parseExpression();if(!Sn(e.tryPeek()))throw new n("Expected closing bracket",e.peekSourceCodeInfo());t=lr(t,o,r[2]),e.advance(),r=e.tryPeek()}else mn(r)&&(t=sr(e,t),r=e.tryPeek());return t}function lr(e,t,n){return On([s.NormalExpression,[[s.NormalBuiltinSymbol,it.get],[e,t]]],n)}function fr(e,t=0){const r=e.tryPeek();let o;if(cn(r))switch(r[1]){case"let":return Qn(e,r);case"if":case"unless":o=function(e,t){const n="unless"===t[1];e.advance();const r=e.parseExpression();dn(e.tryPeek(),"then"),e.advance();const o=zn(e,["else","end"]);let i;return fn(e.tryPeek(),"else")&&(e.advance(),i=zn(e,["end"])),e.advance(),On(n?[s.SpecialExpression,[Lt.unless,[r,o,i]]]:[s.SpecialExpression,[Lt.if,[r,o,i]]],t[2])}(e,r);break;case"cond":o=function(e,t){e.advance();const n=[];for(;!e.isAtEnd()&&!fn(e.tryPeek(),"end");){dn(e.tryPeek(),"case"),e.advance();const t=e.parseExpression();dn(e.tryPeek(),"then"),e.advance();const r=zn(e,["case","end"]);if(n.push([t,r]),fn(e.tryPeek(),"end"))break}return dn(e.tryPeek()),e.advance(),On([s.SpecialExpression,[Lt.cond,n]],t[2])}(e,r);break;case"match":o=function(e,t){e.advance();const n=e.parseExpression(),r=[];for(;!e.isAtEnd()&&!fn(e.tryPeek(),"end");){dn(e.tryPeek(),"case"),e.advance();const t=Gn(e,{allowLiteralPatterns:!0});let n;fn(e.tryPeek(),"when")&&(e.advance(),n=e.parseExpression()),dn(e.tryPeek(),"then"),e.advance();const o=zn(e,["case","end"]);if(r.push([t,o,n]),fn(e.tryPeek(),"end"))break}return dn(e.tryPeek(),"end"),e.advance(),On([s.SpecialExpression,[Lt.match,n,r]],t[2])}(e,r);break;case"for":case"doseq":o=function(e,t){const r="doseq"===t[1];e.advance(),bn(e.tryPeek()),e.advance();const o=[];for(;!e.isAtEnd()&&!wn(e.tryPeek());){const t=Zn(e),r=o.flatMap(e=>Object.keys(gt(e[0][1][0]))),i=gt(t[0][1][0]);if(Object.keys(i).some(e=>r.includes(e)))throw new n("Duplicate binding",t[0][2]);o.push(t),hn(e.tryPeek(),",")&&e.advance()}kn(e.tryPeek()),e.advance(),yn(e.tryPeek(),"->"),e.advance();const i=e.parseExpression();return On(r?[s.SpecialExpression,[Lt.doseq,o,i]]:[s.SpecialExpression,[Lt.for,o,i]],t[2])}(e,r);break;case"loop":o=function(e,t){e.advance(),bn(e.tryPeek()),e.advance();const r=[];let o=e.tryPeek();for(;!e.isAtEnd()&&!wn(o);){const t=Gn(e,{requireDefaultValue:!0,noRest:!0}),n=t[1][1];t[1][1]=void 0,r.push(On([s.Binding,[t,n]],t[2])),hn(e.tryPeek(),",")&&e.advance(),o=e.tryPeek()}if(0===r.length)throw new n("Expected binding",e.peekSourceCodeInfo());kn(o),e.advance(),yn(e.tryPeek(),"->"),e.advance();const i=e.parseExpression();return On([s.SpecialExpression,[Lt.loop,r,i]],t[2])}(e,r);break;case"try":o=function(e,t){e.advance();const n=zn(e,["with","catch"]),r=[];if(fn(e.tryPeek(),"with"))for(e.advance();!e.isAtEnd()&&!fn(e.tryPeek(),"end")&&!fn(e.tryPeek(),"catch");){dn(e.tryPeek(),"case"),e.advance();const t=e.parseExpression();dn(e.tryPeek(),"then"),e.advance();const n=zn(e,["case","catch","end"]);r.push([t,n])}let o,i;return fn(e.tryPeek(),"catch")&&(e.advance(),mn(e.tryPeek())&&(e.advance(),o=Kn(e),kn(e.tryPeek()),e.advance()),i=zn(e,["end"])),dn(e.tryPeek(),"end"),e.advance(),On([s.SpecialExpression,[Lt.try,n,o,i,r]],t[2])}(e,r)}else fn(r,"do")&&(o=qn(e)[0]);o||=cr(e);let i=e.tryPeek();for(;!Rn(e);){if(An(i)){const n=i[1],r=Dn(n,i[2]);if(r<=t&&(12!==r||12!==t))break;const a=On(Lt[n]?[s.SpecialBuiltinSymbol,Lt[n]]:[s.NormalBuiltinSymbol,it[n]],i[2]);e.advance();o=_n(i,a,o,fr(e,r),i[2])}else if(cn(i)){if(!rn(i[1]))break;const r=3;if(r<=t)break;const a=Kn(e),s=fr(e,r);if(Gt(a))throw new n("Special expressions are not allowed in binary functional operators",a[2]);o=Tn(a,[o,s],i[2])}else{if("?"!==i?.[1])break;{if(1<=t)break;e.advance();const r=fr(e);if(!hn(e.tryPeek(),":"))throw new n("Expected :",e.peekSourceCodeInfo());e.advance();const i=fr(e);o=On([s.SpecialExpression,[Lt.if,[o,r,i]]],o[2])}}i=e.tryPeek()}return o}function dr(e){e.tokens.forEach(e=>{if("Error"===e[0])throw new n(e[3],e[2])});const t=[],r=function(e){const t=new Ln(e);return t.parseExpression=(e=0)=>fr(t,e),t}(e);for(;!r.isAtEnd();)if(t.push(fr(r,0)),hn(r.tryPeek(),";"))r.advance();else if(!r.isAtEnd())throw new n("Expected ;",r.peekSourceCodeInfo());return t}function pr(e,{removeWhiteSpace:t}){const n=e.tokens.filter(e=>!(function(e){return"SingleLineComment"===e?.[0]}(e)||function(e){return"MultiLineComment"===e?.[0]}(e)||function(e){return"Shebang"===e?.[0]}(e)||t&&function(e){return"Whitespace"===e?.[0]}(e)));return{...e,tokens:n}}const hr=["(",")","[","]","{","}","'",'"',"`",",",".",";"," ","\n","\r","\t"],yr=["0","1","2","3","4","5","6","7","8","9",...hr],vr=new Set(hr),gr=new Set(yr),mr=/\s/,br=[0],wr=(e,t)=>{if('"'!==e[t])return br;let n='"',r=1,o=e[t+r],i=!1;for(;o&&('"'!==o||i);)r+=1,i?(i=!1,n+=o):("\\"===o&&(i=!0),n+=o),o=e[t+r];return o?(n+='"',[r+1,["string",n]]):[r,["Error",n,void 0,`Unclosed string at position ${t}`]]};function kr(e,t,n,r){return t===n.slice(r,r+t.length)?[t.length,[e,t]]:br}const xr=/\d/,Er=/[0-7]/,Sr=/[0-9a-f]/i,Nr=/[01]/,Pr=/[\s)\]}(,;]/,$r=(e,t)=>{let n=e[t];if("'"===n){let r=1,o=e[t+r],i=!1;for(;"'"!==o||i;){if(void 0===o)return[r,["Error",n,void 0,`Unclosed quoted symbol at position ${t}`]];r+=1,i?(i=!1,n+=o):("\\"===o&&(i=!0),n+=o),o=e[t+r]}return n+="'",[r+1,["Symbol",n]]}if(!gr.has(n)){const r=t;let o=e[t+=1];for(;o&&!vr.has(o);)n+=o,o=e[t+=1];return n.endsWith(":")?[t-r-1,["Symbol",n.slice(0,-1)]]:[t-r,["Symbol",n]]}return br},Cr=[(e,t)=>{let n=e[t];if(!n||!mr.test(n))return br;let r=n;for(n=e[t+=1];n&&mr.test(n);)r+=n,n=e[t+=1];return[r.length,["Whitespace",r]]},(e,t)=>{if("/"===e[t]&&"*"===e[t+1]){let n=2,r="/*";for(;("*"!==e[t+n]||"/"!==e[t+n+1])&&t+n+1<e.length;)r+=e[t+n],n+=1;return t+n+1>=e.length?[n,["Error",r,void 0,`Unclosed multi-line comment at position ${t}`]]:(r+="*/",n+=2,[n,["MultiLineComment",r]])}return br},(e,t)=>{if("/"===e[t]&&"/"===e[t+1]){let n=2,r="//";for(;"\n"!==e[t+n]&&t+n<e.length;)r+=e[t+n],n+=1;return[n,["SingleLineComment",r]]}return br},(e,t)=>{const n=$r(e,t);if(0===n[0]||!n[1])return br;let r=n[1][1];r=r.startsWith("'")?r.slice(1,r.length-1):r;return void 0===rr[r]?br:[n[0],["ReservedSymbol",r]]},(e,t)=>kr("LParen","(",e,t),(e,t)=>kr("RParen",")",e,t),(e,t)=>kr("LBracket","[",e,t),(e,t)=>kr("RBracket","]",e,t),(e,t)=>kr("LBrace","{",e,t),(e,t)=>kr("RBrace","}",e,t),(e,t)=>{if('"'!==e[t]||'"'!==e[t+1]||'"'!==e[t+2])return br;let n='"""',r=3,o=e[t+r],i=e.slice(t+r,t+r+3),a=!1;for(;o&&('"""'!==i||a);)r+=1,a?(a=!1,n+=o):("\\"===o&&(a=!0),n+=o),o=e[t+r],i=e.slice(t+r,t+r+3);return o?(n+='"""',[r+3,["DocString",n]]):[r,["Error",n,void 0,`Unclosed doc string at position ${t}`]]},wr,(e,t)=>{if("#"!==e[t])return br;const[n,r]=wr(e,t+1);if(!r)return br;if("Error"===r[0]){return[n+1,["Error",`#${r[1]}`,void 0,`Unclosed regexp at position ${t}`]]}t+=n+1;let o=n+1,i="";for(;"g"===e[t]||"i"===e[t];)if(i+=e[t],o+=1,t+=1,i.includes(e[t]))return[o,["Error",`#${r[1]}${i}`,void 0,`Duplicated regexp option "${e[t]}"`]];return[o,["RegexpShorthand",`#${r[1]}${i}`]]},(e,t)=>{if("0"!==e[t])return br;const n=e[t+1],r="b"===n||"B"===n?"binary":"o"===n||"O"===n?"octal":"x"===n||"X"===n?"hex":null;if(null===r)return br;let o;for(o=t+2;o<e.length;o+=1){const t=e[o];if("binary"===r&&!Nr.test(t))break;if("octal"===r&&!Er.test(t))break;if("hex"===r&&!Sr.test(t))break}const i=o-t;if(i<=2)return br;const a=e[o];return a&&!Pr.test(a)?br:[i,["BasePrefixedNumber",e.substring(t,o)]]},(e,t)=>{let n;const r="-"===e[t],o="+"===e[t],i=r||o?t+1:t;let a=!1,s=!1;for(n=i;n<e.length;n+=1){const r=e[n];if("_"===r){if(!xr.test(e[n-1])||!xr.test(e[n+1]))return n===i?br:[n-t+1,["Error",e.substring(t,n+1),void 0,`Invalid number format at position ${n+1}`]]}else if("."===r){if(n===i)return br;if(a||s)return[n-t+1,["Error",e.substring(t,n+1),void 0,`Invalid number format at position ${n+1}`]];a=!0}else if("e"===r||"E"===r){if(n===i)return br;if(s)return[n-t+1,["Error",e.substring(t,n+1),void 0,`Invalid number format at position ${n+1}`]];if("."===e[n-1]||"+"===e[n-1]||"-"===e[n-1])return[n-t+1,["Error",e.substring(t,n+1),void 0,`Invalid number format at position ${n+1}`]];"+"!==e[n+1]&&"-"!==e[n+1]||(n+=1),s=!0}else if(!xr.test(r))break}if((r||o)&&n===i)return br;const u=n-t;if(0===u)return br;const c=e[n];return c&&":"!==c&&!Pr.test(c)?[n-t+1,["Error",e.substring(t,n+1),void 0,`Invalid number format at position ${n+1}`]]:[u,["Number",e.substring(t,n)]]},(e,t)=>{const n=e.slice(t,t+3);if(t+2<e.length&&un(n))return[3,["Operator",n]];const r=e.slice(t,t+2);if(t+1<e.length&&un(r))return[2,["Operator",r]];const o=e[t]??"";return un(o)?[1,["Operator",o]]:br},$r];function Ir(e,t,n){let r=0;const o={tokens:[],filePath:n,hasDebugData:t};for(;r<e.length;){const i=t?Ar(e,r,n):void 0,a=jr(e,r),[s,u]=a;r+=s,u&&(i&&(u[2]=i),o.tokens.push(u))}return o}function Ar(e,t,n){const r=e.substring(0,t+1).split(/\r\n|\r|\n/),o=r[r.length-1],i=function(e,t){return e.split(/\r\n|\r|\n/)[t]}(e,r.length-1);return{code:i,position:{line:r.length,column:o.length},filePath:n}}function jr(e,t){const n=t;if(0===t){const[r,o]=((e,t)=>{if("#"===e[t]&&"!"===e[t+1]){let n=2,r="#!";for(;"\n"!==e[t+n]&&t+n<e.length;)r+=e[t+n],n+=1;return[n,["SingleLineComment",r]]}return br})(e,t);if(t+=r,r>0)return[t-n,o]}for(const r of Cr){const[o,i]=r(e,t);if(t+=o,0!==o)return[t-n,i]}return[1,["Error",e[n],void 0,"Unrecognized character"]]}class Or{k;meta;_brand="SuspensionSignal";constructor(e,t){this.k=e,this.meta=t}}function Ur(e){return e instanceof Or}const Mr=new Map;function Vr(e){let t=Mr.get(e);return t||(t={[p]:!0,name:e},Mr.set(e,t)),t}class Fr{_contexts;globalContext;values;nativeJsFunctions;modules;valueModules;pure;constructor({contexts:e,values:t,nativeJsFunctions:n,modules:r,valueModules:o,pure:i}){this.globalContext=b(e[0]),this._contexts=e,this.values=t,this.nativeJsFunctions=n,this.modules=r??new Map,this.valueModules=o??new Map,this.pure=i??!1}getContextsRaw(){return this._contexts}getHostValues(){return this.values}getGlobalContextIndex(){return this._contexts.indexOf(this.globalContext)}static fromDeserialized(e){const t=new Fr({contexts:e.contexts,values:e.values,nativeJsFunctions:e.nativeJsFunctions,modules:e.modules,pure:e.pure});return e.globalContextIndex>=0&&e.globalContextIndex<e.contexts.length&&(t.globalContext=e.contexts[e.globalContextIndex]),t}setContextsFromDeserialized(e,t){this._contexts=e,t>=0&&t<e.length&&(this.globalContext=e[t])}getModule(e){return this.modules.get(e)}getValueModule(e){return this.valueModules.has(e)?{value:this.valueModules.get(e),found:!0}:{value:void 0,found:!1}}registerValueModule(e,t){this.valueModules.set(e,t)}create(e){const t=this.globalContext,n=new Fr({contexts:[e,...this._contexts],values:this.values,nativeJsFunctions:this.nativeJsFunctions,modules:this.modules,valueModules:this.valueModules,pure:this.pure});return n.globalContext=t,n}new(e){return new Fr({contexts:[{},e],modules:this.modules,valueModules:this.valueModules,pure:this.pure})}addValues(e,t){const r=this._contexts[0];for(const[o,i]of Object.entries(e)){if(r[o])throw new n(`Cannot redefine value "${o}"`,t);const e=Br(o);if(e)throw new n(`Cannot shadow ${e}`,t);r[o]={value:ue(i)}}}getValue(e){for(const t of this._contexts){const n=t[e];if(n)return n.value}const t=this.nativeJsFunctions?.[e];return t||this.values?.[e]}lookUp(e){const t=e[1];for(const e of this._contexts){const n=e[t];if(n)return n}const n=this.values?.[t];if(void 0!==n)return{value:ue(n)};const r=this.nativeJsFunctions?.[t];return r?{value:r}:null}evaluateSymbol(e){if(Gt(e)){const t=e[1];switch(t){case Lt["&&"]:case Lt["||"]:case Lt.array:case Lt.object:case Lt["defined?"]:case Lt.recur:case Lt.throw:case Lt["??"]:{const n=b(zt.specialExpressions[t],e[2]);return{[f]:!0,functionType:"SpecialBuiltin",specialBuiltinSymbolType:t,sourceCodeInfo:e[2],arity:n.arity}}default:throw new n(`Unknown special builtin symbol type: ${t}`,e[2])}}if(Yt(e)){const t=e[1],n=at[t],r=n.name;return{[f]:!0,functionType:"Builtin",normalBuiltinSymbolType:t,sourceCodeInfo:e[2],arity:n.arity,name:r}}const t=this.lookUp(e);if(k(r=t)&&void 0!==r.value)return t.value;var r;throw new i(e[1],e[2])}}function Br(e){return Wt.includes(e)?`special expression "${e}"`:Jt.includes(e)?`builtin function "${e}"`:"self"===e?`builtin value "${e}"`:null}function Tr(e){const t=Br(e);if(t)throw new n(`Cannot shadow ${t}`,void 0)}function Rr(e={},t,r){const o=e.globalContext??{},i=e.contexts?[o,...e.contexts]:[o];let a,s;if(e.bindings)for(const[t,r]of Object.entries(e.bindings)){if(t.includes("."))throw new n(`Dots are not allowed in binding keys: "${t}"`,void 0);if("function"==typeof r){const e={fn:r};Tr(t),s||(s={}),s[t]={functionType:"NativeJsFunction",nativeFn:e,name:t,[f]:!0,arity:e.arity??{},docString:e.docString??""}}else Tr(t),a||(a={}),a[t]=r}const u=new Fr({contexts:i,values:a,modules:t,nativeJsFunctions:s,pure:r});return e.globalModuleScope?u:u.create({})}function _r(e,t="value"){if(null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e)return null;if(L(e))return null;if(z(e))return null;if(x(e)){if("NativeJsFunction"===e.functionType)return`${t} is a NativeJsFunction (${e.name??"anonymous"}). NativeJsFunctions are not serializable — they are re-injected from bindings on resume.`;if("UserDefined"===e.functionType||"Builtin"===e.functionType||"SpecialBuiltin"===e.functionType||"Module"===e.functionType)return null;if("Partial"===e.functionType){const n=e,r=_r(n.function,`${t}.function`);if(r)return r;for(let e=0;e<n.params.length;e++){const r=_r(n.params[e],`${t}.params[${e}]`);if(r)return r}return null}if("Comp"===e.functionType){const n=e;for(let e=0;e<n.params.length;e++){const r=_r(n.params[e],`${t}.params[${e}]`);if(r)return r}return null}if("Complement"===e.functionType){return _r(e.function,`${t}.function`)}if("Constantly"===e.functionType){return _r(e.value,`${t}.value`)}if("Juxt"===e.functionType){const n=e;for(let e=0;e<n.params.length;e++){const r=_r(n.params[e],`${t}.params[${e}]`);if(r)return r}return null}if("EveryPred"===e.functionType){const n=e;for(let e=0;e<n.params.length;e++){const r=_r(n.params[e],`${t}.params[${e}]`);if(r)return r}return null}if("SomePred"===e.functionType){const n=e;for(let e=0;e<n.params.length;e++){const r=_r(n.params[e],`${t}.params[${e}]`);if(r)return r}return null}if("Fnull"===e.functionType){const n=e,r=_r(n.function,`${t}.function`);if(r)return r;for(let e=0;e<n.params.length;e++){const r=_r(n.params[e],`${t}.params[${e}]`);if(r)return r}return null}return`${t} has unknown function type ${e}`}if(Array.isArray(e)){for(let n=0;n<e.length;n++){const r=_r(e[n],`${t}[${n}]`);if(r)return r}return null}if("object"==typeof e){for(const[n,r]of Object.entries(e)){const e=_r(r,`${t}.${n}`);if(e)return e}return null}return`${t} has unexpected type ${typeof e}`}function Lr(e,t){const r=new Map;let o=0;function i(e){if(e instanceof Fr){if(r.has(e))return;r.set(e,o++);for(const t of e.getContextsRaw())for(const e of Object.values(t))i(e.value)}else if(Array.isArray(e))for(const t of e)i(t);else if(null!==e&&"object"==typeof e)for(const t of Object.values(e))i(t)}function a(e,t){if(e instanceof Fr)return{__csRef:r.get(e)};if(x(e)&&"NativeJsFunction"===e.functionType){const r=_r(e,t);throw new n(`Cannot serialize continuation: ${r??"NativeJsFunction found in continuation stack"}`,void 0)}if(Array.isArray(e))return e.map((e,n)=>a(e,`${t}[${n}]`));if(null!==e&&"object"==typeof e){const n={};for(const[r,o]of Object.entries(e))n[r]=a(o,`${t}.${r}`);return n}return e}i(e),void 0!==t&&i(t);const s=Array.from(r.entries()).map(([e,t])=>({id:t,contexts:e.getContextsRaw().map((e,n)=>{const r={};for(const[o,i]of Object.entries(e))r[o]={value:a(i.value,`cs[${t}].contexts[${n}].${o}`)};return r}),globalContextIndex:e.getGlobalContextIndex(),pure:e.pure})),u=a(e,"k"),c=void 0!==t?a(t,"meta"):void 0,l={version:1,contextStacks:s,k:u,...void 0!==c?{meta:c}:{}};return JSON.stringify(l)}const Dr={"dvala.log":(e,t)=>(console.log(...e),{type:"Value",value:null,k:t}),"dvala.now":(e,t)=>({type:"Value",value:Date.now(),k:t}),"dvala.random":(e,t)=>({type:"Value",value:Math.random(),k:t}),"dvala.sleep":(e,t,r)=>{const o=e[0];if("number"!=typeof o||o<0)throw new n(`dvala.sleep requires a non-negative number argument, got ${"number"==typeof o?o:typeof o}`,r);return new Promise(e=>{setTimeout(()=>e({type:"Value",value:null,k:t}),o)})}};function zr(e,t){switch(e[0]){case s.Number:case s.String:return e[1];case s.NormalBuiltinSymbol:case s.SpecialBuiltinSymbol:case s.UserDefinedSymbol:return t.evaluateSymbol(e);case s.ReservedSymbol:return Xr(e);case s.NormalExpression:{const r=function(e,t){const r=e[2];return ve(function(e,t){const r=[],o=[],i=ke(e,(e,i)=>Xt(e)?ve(zr(e[1],t),t=>{if(!Array.isArray(t))throw new n(`Spread operator requires an array, got ${v(e)}`,e[2]);r.push(...t)}):e[0]!==s.ReservedSymbol||"_"!==e[1]?ve(zr(e,t),e=>{r.push(e)}):void o.push(i));return ve(i,()=>({params:r,placeholders:o}))}(e[1][1],t),({params:o,placeholders:a})=>{if(Ht(e)){const s=e[1][0];if(a.length>0){return ve(zr(s,t),e=>({[f]:!0,function:J(e,r),functionType:"Partial",params:o,placeholders:a,sourceCodeInfo:r,arity:re(a.length)}))}if(Yt(s)){const r=s[1],i=zt.allNormalExpressions[r];if(t.pure&&!1===i.pure)throw new n(`Cannot call impure function '${i.name}' in pure mode`,e[2]);return i.evaluate(o,e[2],t,{executeFunction:Jr})}{const n=t.getValue(s[1]);if(void 0!==n)return Jr(J(n,r),o,t,r);throw new i(s[1],e[2])}}return ve(zr(e[1][0],t),e=>{const n=J(e,r);if(a.length>0){return{[f]:!0,function:n,functionType:"Partial",params:o,placeholders:a,sourceCodeInfo:r,arity:re(a.length)}}return Jr(n,o,t,r)})})}(e,t);return ve(r,t=>{if("number"==typeof t&&Number.isNaN(t))throw new n("Number is NaN",e[2]);return Ve(t)})}case s.SpecialExpression:{const r={type:"Eval",node:e,env:t,k:[]};try{return Ve(bo(r))}catch(r){if(r instanceof n&&r.message.includes("Unexpected async operation")){return wo({type:"Eval",node:e,env:t,k:[]}).then(e=>Ve(e))}throw r}}default:throw new n(`${c(e[0])}-node cannot be evaluated`,e[2])}}function Jr(e,t,r,o){if(x(e))return Wr(e,t,r,o);if(Array.isArray(e))return Yr(e,t,o);if(B(e))return Kr(e,t,o);if("string"==typeof e)return Gr(e,t,o);if(Z(e))return Hr(e,t,o);throw new n("Unexpected function type",o)}function Wr(e,t,r,o){switch(e.functionType){case"UserDefined":return qr(e,t,r,o);case"Partial":return function(e,t,r,o){const i=[...e.params];if(t.length!==e.placeholders.length)throw new n(`(partial) expects ${e.placeholders.length} arguments, got ${t.length}.`,o);const a=[...t];for(const t of e.placeholders)i.splice(t,0,a.shift());return Jr(e.function,i,r,o)}(e,t,r,o);case"Comp":return function(e,t,r,o){const{params:i}=e;if(0===i.length){if(1!==t.length)throw new n(`(comp) expects one argument, got ${v(t.length)}.`,o);return U(t[0],o)}let a=t;for(let e=i.length-1;e>=0;e--){const t=i[e];a=ve(a,e=>ve(Jr(J(t,o),e,r,o),e=>[e]))}return ve(a,e=>U(e[0],o))}(e,t,r,o);case"Constantly":return e.value;case"Juxt":return function(e,t,n,r){return ge(e.params,e=>Jr(J(e,r),t,n,r))}(e,t,r,o);case"Complement":return ve(Jr(e.function,t,r,o),e=>!e);case"EveryPred":return function(e,t,n,r){const o=[];for(const i of e.params)for(const e of t)o.push(()=>Jr(J(i,r),[e],n,r));return be(o,(e,t)=>!!e&&ve(t(),e=>!!e),!0)}(e,t,r,o);case"SomePred":return function(e,t,n,r){const o=[];for(const i of e.params)for(const e of t)o.push(()=>Jr(J(i,r),[e],n,r));return be(o,(e,t)=>!!e||ve(t(),e=>!!e),!1)}(e,t,r,o);case"Fnull":return function(e,t,n,r){const o=t.map((t,n)=>null===t?ue(e.params[n]):t);return Jr(J(e.function,r),o,n,r)}(e,t,r,o);case"Builtin":return function(e,t,r,o){const i=b(zt.allNormalExpressions[e.normalBuiltinSymbolType],o);if(r.pure&&!1===i.pure)throw new n(`Cannot call impure function '${e.name}' in pure mode`,o);return i.evaluate(t,o,r,{executeFunction:Jr})}(e,t,r,o);case"SpecialBuiltin":return function(e,t,r,o){const i=b(zt.specialExpressions[e.specialBuiltinSymbolType],o);if(i.evaluateAsNormalExpression)return i.evaluateAsNormalExpression(t,o,r,{executeFunction:Jr});throw new n(`Special builtin function ${e.specialBuiltinSymbolType} is not supported as normal expression.`,o)}(e,t,r,o);case"Module":return function(e,t,r,o){const i=r.getModule(e.moduleName);if(!i)throw new n(`Module '${e.moduleName}' not found.`,o);const a=i.functions[e.functionName];if(!a)throw new n(`Function '${e.functionName}' not found in module '${e.moduleName}'.`,o);if(r.pure&&!1===a.pure)throw new n(`Cannot call impure function '${e.functionName}' in pure mode`,o);return ne(a.arity,t.length,o),a.evaluate(t,o,r,{executeFunction:Jr})}(e,t,r,o);case"NativeJsFunction":return function(e,t,r,o){if(r.pure&&!e.nativeFn.pure)throw new n(`Cannot call impure native function '${e.name}' in pure mode`,o);try{const r=e.nativeFn.fn(...t);return r instanceof Promise?r.then(e=>ue(e),e=>{const t="string"==typeof e?e:k(e)&&"string"==typeof e.message?e.message:"<no message>";throw new n(`Native function threw: "${t}"`,o)}):ue(r)}catch(e){const t="string"==typeof e?e:k(e)&&"string"==typeof e.message?e.message:"<no message>";throw new n(`Native function threw: "${t}"`,o)}}(e,t,r,o)}}function qr(e,r,o,i){function a(r){if(!te(e.arity,r.length))throw new n(`Expected ${e.arity} arguments, got ${r.length}.`,i);const s=e.evaluatedfunction,u=s[0],c=u.filter(e=>e[0]!==ct).length,l=o.create(e.evaluatedfunction[2]),f={self:{value:e}},d=[];let p,h;for(let e=0;e<r.length;e+=1)if(e<c){const t=e;p=ve(p,()=>{const e=ue(r[t]);return ve(yt(u[t],e,e=>zr(e,l.create(f))),e=>{Object.entries(e).forEach(([e,t])=>{f[e]={value:t}})})})}else d.push(ue(r[e]));for(let e=r.length;e<c;e++){const t=e;h=ve(h,()=>{const e=u[t];return ve(zr(e[1][1],o.create(f)),t=>ve(yt(e,t,e=>zr(e,o.create(f))),e=>{Object.entries(e).forEach(([e,t])=>{f[e]={value:t}})}))})}return ve(p,()=>ve(h,()=>{const e=u.find(e=>e[0]===ct),n=void 0!==e?ve(yt(e,d,e=>zr(e,o.create(f))),e=>{Object.entries(e).forEach(([e,t])=>{f[e]={value:t}})}):void 0;return ve(n,()=>{const e=l.create(f),n=be(s[1],(t,n)=>zr(n,e),null);return n instanceof Promise?n.catch(e=>{if(e instanceof t)return a(e.params);throw e}):n})}))}for(;;)try{return a(r)}catch(e){if(e instanceof t){r=e.params;continue}throw e}}function Kr(e,t,r){if(1!==t.length)throw new n("Object as function requires one string parameter.",r);const o=t[0];return K(o,r),ue(e[o])}function Yr(e,t,r){if(1!==t.length)throw new n("Array as function requires one non negative integer parameter.",r);const o=t[0];return ee(o,r,{integer:!0,nonNegative:!0}),ue(e[o])}function Gr(e,t,r){if(1!==t.length)throw new n("String as function requires one Obj parameter.",r);const o=ue(t[0]);if(B(o))return ue(o[e]);if(Z(o,{integer:!0}))return ue(e[o]);throw new n(`string as function expects Obj or integer parameter, got ${v(o)}`,r)}function Hr(e,t,r){if(ee(e,void 0,{integer:!0}),1!==t.length)throw new n("Number as function requires one Arr parameter.",r);const o=t[0];return F(o,r),ue(o[e])}function Xr(e){const t=e[1];if(!["true","false","null"].includes(t))throw new n(`Reserved symbol ${t} cannot be evaluated`,e[2]);return b(rr[t],e[2])}function Qr(e,t,r){switch(e[0]){case s.Number:case s.String:return{type:"Value",value:e[1],k:r};case s.NormalBuiltinSymbol:case s.SpecialBuiltinSymbol:case s.UserDefinedSymbol:return{type:"Value",value:t.evaluateSymbol(e),k:r};case s.ReservedSymbol:return{type:"Value",value:Xr(e),k:r};case s.NormalExpression:return function(e,t,n){const r=e[1][1],o=e[2],i={type:"NanCheck",sourceCodeInfo:o},a={type:"EvalArgs",node:e,index:0,params:[],placeholders:[],env:t,sourceCodeInfo:o};let u=0;for(;u<r.length;){const e=r[u];if(e[0]!==s.ReservedSymbol||"_"!==e[1])break;a.placeholders.push(a.params.length),u++}if(a.index=u,u>=r.length)return Zr(a,[i,...n]);const c=r[u],l=[a,i,...n];if(Xt(c))return{type:"Eval",node:c[1],env:t,k:l};return{type:"Eval",node:c,env:t,k:l}}(e,t,r);case s.SpecialExpression:return function(e,t,r){const o=e[2],i=e[1][0];switch(i){case Lt.if:case Lt.unless:{const[n,a,s]=e[1][1];return{type:"Eval",node:n,env:t,k:[{type:"IfBranch",thenNode:a,elseNode:s,inverted:i===Lt.unless,env:t,sourceCodeInfo:o},...r]}}case Lt["&&"]:{const n=e[1][1];if(0===n.length)return{type:"Value",value:!0,k:r};const i={type:"And",nodes:n,index:1,env:t,sourceCodeInfo:o};return 1===n.length?{type:"Eval",node:n[0],env:t,k:r}:{type:"Eval",node:n[0],env:t,k:[i,...r]}}case Lt["||"]:{const n=e[1][1];if(0===n.length)return{type:"Value",value:!1,k:r};const i={type:"Or",nodes:n,index:1,env:t,sourceCodeInfo:o};return 1===n.length?{type:"Eval",node:n[0],env:t,k:r}:{type:"Eval",node:n[0],env:t,k:[i,...r]}}case Lt["??"]:{const n=e[1][1];if(0===n.length)return{type:"Value",value:null,k:r};const i=n[0];if(qt(i)&&null===t.lookUp(i)){if(1===n.length)return{type:"Value",value:null,k:r};const e={type:"Qq",nodes:n,index:2,env:t,sourceCodeInfo:o},i=n[1];return qt(i)&&null===t.lookUp(i)?function(e,t){return oo(e,t)}(e,r):2===n.length?{type:"Eval",node:i,env:t,k:r}:{type:"Eval",node:i,env:t,k:[e,...r]}}const a={type:"Qq",nodes:n,index:1,env:t,sourceCodeInfo:o};return 1===n.length?{type:"Eval",node:i,env:t,k:r}:{type:"Eval",node:i,env:t,k:[a,...r]}}case Lt.cond:{const n=e[1][1];if(0===n.length)return{type:"Value",value:null,k:r};const i={type:"Cond",phase:"test",cases:n,index:0,env:t,sourceCodeInfo:o};return{type:"Eval",node:n[0][0],env:t,k:[i,...r]}}case Lt.match:{const n=e[1][1],i=e[1][2];return{type:"Eval",node:n,env:t,k:[{type:"Match",phase:"matchValue",matchValue:null,cases:i,index:0,bindings:{},env:t,sourceCodeInfo:o},...r]}}case Lt.block:{const n=e[1][1],i={},a=t.create(i);if(0===n.length)return{type:"Value",value:null,k:r};if(1===n.length)return{type:"Eval",node:n[0],env:a,k:r};const s={type:"Sequence",nodes:n,index:1,env:a,sourceCodeInfo:o};return{type:"Eval",node:n[0],env:a,k:[s,...r]}}case Lt.let:{const n=e[1][1],i=n[1][0];return{type:"Eval",node:n[1][1],env:t,k:[{type:"LetBind",target:i,env:t,sourceCodeInfo:o},...r]}}case Lt.loop:{const n=e[1][1],i=e[1][2];if(0===n.length){const e={},a={type:"LoopIterate",bindingNodes:n,bindingContext:e,body:i,env:t.create(e),sourceCodeInfo:o};return{type:"Eval",node:i,env:t.create(e),k:[a,...r]}}const a={type:"LoopBind",phase:"value",bindingNodes:n,index:0,context:{},body:i,env:t,sourceCodeInfo:o};return{type:"Eval",node:n[0][1][1],env:t,k:[a,...r]}}case Lt.for:case Lt.doseq:{const n=e[1][1],a=e[1][2],s=i===Lt.for;if(0===n.length)return{type:"Value",value:s?[]:null,k:r};const u={},c=t.create(u),l={type:"ForLoop",returnResult:s,bindingNodes:n,body:a,result:[],phase:"evalCollection",bindingLevel:0,levelStates:[],context:u,env:c,sourceCodeInfo:o};return{type:"Eval",node:n[0][0][1][1],env:c,k:[l,...r]}}case Lt.try:{const n=e[1][1],i=e[1][2],a=e[1][3],s=e[1][4];if(s&&s.length>0){const e={type:"TryWith",handlers:s.map(([e,n])=>({effectRef:zr(e,t),handlerNode:n})),env:t,sourceCodeInfo:o};if(a){const s={type:"TryCatch",errorSymbol:i?i[1]:null,catchNode:a,env:t,sourceCodeInfo:o};return{type:"Eval",node:n,env:t,k:[e,s,...r]}}return{type:"Eval",node:n,env:t,k:[e,...r]}}if(a){const e={type:"TryCatch",errorSymbol:i?i[1]:null,catchNode:a,env:t,sourceCodeInfo:o};return{type:"Eval",node:n,env:t,k:[e,...r]}}return{type:"Eval",node:n,env:t,k:r}}case Lt.throw:return{type:"Eval",node:e[1][1],env:t,k:[{type:"Throw",sourceCodeInfo:o},...r]};case Lt.recur:{const n=e[1][1];if(0===n.length)return fo([],r,o);const i={type:"Recur",nodes:n,index:1,params:[],env:t,sourceCodeInfo:o};if(1===n.length){const e={...i,index:1};return{type:"Eval",node:n[0],env:t,k:[e,...r]}}return{type:"Eval",node:n[0],env:t,k:[i,...r]}}case Lt.array:{const n=e[1][1];if(0===n.length)return{type:"Value",value:[],k:r};const i=n[0],a=Xt(i),s={type:"ArrayBuild",nodes:n,index:0,result:[],isSpread:a,env:t,sourceCodeInfo:o};return{type:"Eval",node:a?i[1]:i,env:t,k:[s,...r]}}case Lt.object:{const n=e[1][1];if(0===n.length)return{type:"Value",value:{},k:r};const i=n[0],a=Xt(i),s={type:"ObjectBuild",nodes:n,index:0,result:{},currentKey:null,isSpread:a,env:t,sourceCodeInfo:o};return{type:"Eval",node:a?i[1]:i,env:t,k:[s,...r]}}case Lt["0_lambda"]:{const n=e[1][1],o=e[1][2]??"",i=function(e,t){const n={},r=e[0].reduce((e,t)=>(Object.keys(gt(t)).forEach(t=>{e[t]={value:null}}),e),{});return Qt(e[1],t.new(r),zt,zr).forEach(e=>{const r=t.getValue(e);O(r)&&(n[e]={value:r})}),[e[0],e[1],n]}(n,t),a=i[0].filter(e=>e[0]!==ct&&void 0===e[1][1]).length,s={min:a>0?a:void 0,max:i[0].some(e=>e[0]===ct)?void 0:i[0].length};return{type:"Value",value:{[f]:!0,sourceCodeInfo:e[2],functionType:"UserDefined",name:void 0,evaluatedfunction:i,arity:s,docString:o},k:r}}case Lt["defined?"]:{const n=e[1][1];if(!qt(n))return{type:"Value",value:!0,k:r};return{type:"Value",value:null!==t.lookUp(n),k:r}}case Lt.import:{const i=e[1][1],a=t.getValueModule(i);if(a.found)return{type:"Value",value:a.value,k:r};const s=t.getModule(i);if(!s)throw new n(`Unknown module: '${i}'`,o);const u={};for(const[e,t]of Object.entries(s.functions))u[e]={[f]:!0,sourceCodeInfo:o,functionType:"Module",moduleName:i,functionName:e,arity:t.arity};if(s.source){const e=dr(pr(Ir(s.source,!1,void 0),{removeWhiteSpace:!0})),n=t.create({}),a={type:"ImportMerge",tsFunctions:u,moduleName:i,env:t,sourceCodeInfo:o};if(1===e.length)return{type:"Eval",node:e[0],env:n,k:[a,...r]};const c={type:"Sequence",nodes:e,index:1,env:n};return{type:"Eval",node:e[0],env:n,k:[c,a,...r]}}return t.registerValueModule(i,u),{type:"Value",value:u,k:r}}case Lt.effect:return{type:"Value",value:Vr(e[1][1]),k:r};case Lt.perform:{const n=[e[1][1],...e[1][2]];if(1===n.length){const e={type:"PerformArgs",argNodes:n,index:1,params:[],env:t,sourceCodeInfo:o};return{type:"Eval",node:n[0],env:t,k:[e,...r]}}const i={type:"PerformArgs",argNodes:n,index:1,params:[],env:t,sourceCodeInfo:o};return{type:"Eval",node:n[0],env:t,k:[i,...r]}}case Lt.parallel:return{type:"Parallel",branches:e[1][1],env:t,k:r};case Lt.race:return{type:"Race",branches:e[1][1],env:t,k:r};default:throw new n(`Unknown special expression type: ${i}`,o)}}(e,t,r);default:throw new n(`${c(e[0])}-node cannot be evaluated`,e[2])}}function Zr(e,t){const{node:r,params:o,placeholders:a,env:s,sourceCodeInfo:u}=e;if(Ht(r)){const e=r[1][0];if(a.length>0){const n=s.evaluateSymbol(e);return{type:"Value",value:{[f]:!0,function:J(n,u),functionType:"Partial",params:o,placeholders:a,sourceCodeInfo:u,arity:re(a.length)},k:t}}if(Yt(e)){const r=e[1],i=zt.allNormalExpressions[r];if(s.pure&&!1===i.pure)throw new n(`Cannot call impure function '${i.name}' in pure mode`,u);return go(i.evaluate(o,u,s,{executeFunction:Jr}),t)}const c=s.getValue(e[1]);if(void 0!==c)return eo(J(c,u),o,a,s,u,t);throw new i(e[1],u)}return{type:"Eval",node:r[1][0],env:s,k:[{type:"CallFn",params:o,placeholders:a,env:s,sourceCodeInfo:u},...t]}}function eo(e,t,r,o,i,a){if(r.length>0){return{type:"Value",value:{[f]:!0,function:e,functionType:"Partial",params:t,placeholders:r,sourceCodeInfo:i,arity:re(r.length)},k:a}}if(x(e))return function(e,t,n,r,o){switch(e.functionType){case"UserDefined":return to(e,t,n,r,o);case"Partial":case"Comp":case"Constantly":case"Juxt":case"Complement":case"EveryPred":case"SomePred":case"Fnull":case"Builtin":case"SpecialBuiltin":case"Module":case"NativeJsFunction":return go(Wr(e,t,n,r),o)}}(e,t,o,i,a);if(Array.isArray(e))return{type:"Value",value:Yr(e,t,i),k:a};if(B(e))return{type:"Value",value:Kr(e,t,i),k:a};if("string"==typeof e)return{type:"Value",value:Gr(e,t,i),k:a};if(Z(e))return{type:"Value",value:Hr(e,t,i),k:a};throw new n("Unexpected function type",i)}function to(e,t,r,o,i){if(!te(e.arity,t.length))throw new n(`Expected ${e.arity} arguments, got ${t.length}.`,o);const a=e.evaluatedfunction,s=a[0],u=s.filter(e=>e[0]!==ct).length,c=r.create(e.evaluatedfunction[2]),l={self:{value:e}},f=[];for(let n=0;n<t.length;n+=1)if(n<u){const a=ue(t[n]),u=yt(s[n],a,e=>zr(e,c.create(l)));if(u instanceof Promise){return go(qr(e,t,r,o),i)}Object.entries(u).forEach(([e,t])=>{l[e]={value:t}})}else f.push(ue(t[n]));for(let n=t.length;n<u;n++){const a=s[n],u=zr(a[1][1],c.create(l));if(u instanceof Promise){return go(qr(e,t,r,o),i)}const f=yt(a,u,e=>zr(e,c.create(l)));if(f instanceof Promise){return go(qr(e,t,r,o),i)}Object.entries(f).forEach(([e,t])=>{l[e]={value:t}})}const d=s.find(e=>e[0]===ct);if(d){const n=yt(d,f,e=>zr(e,c.create(l)));if(n instanceof Promise){return go(qr(e,t,r,o),i)}Object.entries(n).forEach(([e,t])=>{l[e]={value:t}})}const p=a[1],h=c.create(l);if(0===p.length)return{type:"Value",value:null,k:i};const y={type:"FnBody",fn:e,bodyIndex:1,env:h,outerEnv:r,sourceCodeInfo:o};return p.length,{type:"Eval",node:p[0],env:h,k:[y,...i]}}function no(e,t,o){switch(e.type){case"Sequence":return function(e,t,n){const{nodes:r,index:o,env:i}=e;if(o>=r.length)return{type:"Value",value:t,k:n};const a={...e,index:o+1};if(o===r.length-1)return{type:"Eval",node:r[o],env:i,k:n};return{type:"Eval",node:r[o],env:i,k:[a,...n]}}(e,t,o);case"IfBranch":return function(e,t,n){const{thenNode:r,elseNode:o,inverted:i,env:a}=e,s=i?!t:t;if(s)return{type:"Eval",node:r,env:a,k:n};if(o)return{type:"Eval",node:o,env:a,k:n};return{type:"Value",value:null,k:n}}(e,t,o);case"Cond":return function(e,t,n){const{cases:r,index:o,env:i}=e;if("test"===e.phase){if(t)return{type:"Eval",node:r[o][1],env:i,k:n};const a=o+1;if(a>=r.length)return{type:"Value",value:null,k:n};const s={...e,index:a};return{type:"Eval",node:r[a][0],env:i,k:[s,...n]}}return{type:"Value",value:t,k:n}}(e,t,o);case"Match":return function(e,t,n){const{cases:r,env:o}=e;if("matchValue"===e.phase){const r=t;return ro({...e,matchValue:r,phase:"guard"},n)}if("guard"===e.phase){if(!t){return ro({...e,index:e.index+1,bindings:{}},n)}const i={};for(const[t,n]of Object.entries(e.bindings))i[t]={value:n};const a=o.create(i);return{type:"Eval",node:r[e.index][1],env:a,k:n}}return{type:"Value",value:t,k:n}}(e,t,o);case"And":return function(e,t,n){if(!t)return{type:"Value",value:t,k:n};const{nodes:r,index:o,env:i}=e;if(o>=r.length)return{type:"Value",value:t,k:n};if(o===r.length-1)return{type:"Eval",node:r[o],env:i,k:n};const a={...e,index:o+1};return{type:"Eval",node:r[o],env:i,k:[a,...n]}}(e,t,o);case"Or":return function(e,t,n){if(t)return{type:"Value",value:t,k:n};const{nodes:r,index:o,env:i}=e;if(o>=r.length)return{type:"Value",value:t,k:n};if(o===r.length-1)return{type:"Eval",node:r[o],env:i,k:n};const a={...e,index:o+1};return{type:"Eval",node:r[o],env:i,k:[a,...n]}}(e,t,o);case"Qq":return function(e,t,n){if(null!==t)return{type:"Value",value:t,k:n};return oo(e,n)}(e,t,o);case"ArrayBuild":return function(e,t,r){const{nodes:o,result:i,env:a,sourceCodeInfo:s}=e;if(e.isSpread){if(!Array.isArray(t))throw new n("Spread value is not an array",s);i.push(...t)}else i.push(t);const u=e.index+1;if(u>=o.length)return{type:"Value",value:i,k:r};const c=o[u],l=Xt(c),f={...e,index:u,isSpread:l};return{type:"Eval",node:l?c[1]:c,env:a,k:[f,...r]}}(e,t,o);case"ObjectBuild":return function(e,t,r){const{nodes:o,result:i,env:a,sourceCodeInfo:s}=e;if(e.isSpread){if(!k(t))throw new n("Spread value is not an object",s);Object.assign(i,t);const u=e.index+1;if(u>=o.length)return{type:"Value",value:i,k:r};const c=o[u],l=Xt(c),f={...e,index:u,currentKey:null,isSpread:l};return{type:"Eval",node:l?c[1]:c,env:a,k:[f,...r]}}if(null===e.currentKey){K(t,s);const i=o[e.index+1];if(void 0===i)throw new n("Missing value for key",s);return{type:"Eval",node:i,env:a,k:[{...e,currentKey:t},...r]}}{i[e.currentKey]=t;const n=e.index+2;if(n>=o.length)return{type:"Value",value:i,k:r};const s=o[n],u=Xt(s),c={...e,index:n,currentKey:null,isSpread:u};return{type:"Eval",node:u?s[1]:s,env:a,k:[c,...r]}}}(e,t,o);case"LetBind":return function(e,t,n){const{target:r,env:o,sourceCodeInfo:i}=e,a=yt(r,t,e=>zr(e,o));return ve(a,e=>(o.addValues(e,i),{type:"Value",value:t,k:n}))}(e,t,o);case"LoopBind":return function(e,t,n){const{bindingNodes:r,index:o,context:i,body:a,env:s,sourceCodeInfo:u}=e,c=r[o],l=yt(c[1][0],t,e=>zr(e,s.create(i)));return ve(l,t=>{Object.entries(t).forEach(([e,t])=>{i[e]={value:t}});const c=o+1;if(c>=r.length){const e=s.create(i);return{type:"Eval",node:a,env:e,k:[{type:"LoopIterate",bindingNodes:r,bindingContext:i,body:a,env:e,sourceCodeInfo:u},...n]}}const l={...e,index:c};return{type:"Eval",node:r[c][1][1],env:s.create(i),k:[l,...n]}})}(e,t,o);case"LoopIterate":return function(e,t,n){return{type:"Value",value:t,k:n}}(0,t,o);case"ForLoop":return function(e,t,r){const{returnResult:o,bindingNodes:i,result:a,env:s,sourceCodeInfo:u,context:c}=e,{asColl:l,isSeq:f}={asColl:(e,t)=>{if("string"==typeof e||Array.isArray(e)||B(e))return e;throw new n(`Expected collection, got ${v(e)}`,t)},isSeq:e=>"string"==typeof e||Array.isArray(e)};switch(e.phase){case"evalCollection":{const n=l(t,u),o=f(n)?n:Object.entries(n);if(0===o.length)return io(e,r);const a=[...e.levelStates];a[e.bindingLevel]={collection:o,index:0};const d=i[e.bindingLevel];return ve(yt(d[0][1][0],U(o[0],u),e=>zr(e,s)),t=>{Object.entries(t).forEach(([e,t])=>{c[e]={value:t}});const n=d[1];return n.length>0?so(e,a,n,0,r):uo(e,a,r)})}case"evalLet":throw new n("ForLoop evalLet should not reach applyFrame",u);case"evalWhen":{if(!t)return ao(e,r);const n=i[e.bindingLevel][3];if(n){const t={...e,phase:"evalWhile"};return{type:"Eval",node:n,env:s,k:[t,...r]}}return co(e,r)}case"evalWhile":if(!t){const t=[...e.levelStates];return t[e.bindingLevel]={...t[e.bindingLevel],index:Number.POSITIVE_INFINITY},ao({...e,levelStates:t},r)}return co(e,r);case"evalBody":return o&&a.push(t),ao(e,r);case"evalElement":throw new n(`Unexpected ForLoop phase: ${e.phase}`,u)}return{type:"Value",value:null,k:r}}(e,t,o);case"Throw":return function(e,t,n){K(t,e.sourceCodeInfo,{nonEmpty:!0});const o=new r(t,e.sourceCodeInfo);return lo(o,n)}(e,t,o);case"Recur":return function(e,t,n){const{nodes:r,index:o,params:i,env:a}=e;if(i.push(t),o>=r.length)return fo(i,n,e.sourceCodeInfo);const s={...e,index:o+1};return{type:"Eval",node:r[o],env:a,k:[s,...n]}}(e,t,o);case"PerformArgs":return function(e,t,n){const{argNodes:r,index:o,params:i,env:a}=e;if(i.push(t),o>=r.length){const t=i[0];!function(e,t){if(!z(e))throw m("EffectRef",e,t)}(t,e.sourceCodeInfo);return{type:"Perform",effect:t,args:i.slice(1),k:n}}const s={...e,index:o+1};return{type:"Eval",node:r[o],env:a,k:[s,...n]}}(e,t,o);case"TryCatch":case"TryWith":return function(e,t){return{type:"Value",value:e,k:t}}(t,o);case"EffectResume":return function(e,t){return{type:"Value",value:t,k:e.resumeK}}(e,t);case"ParallelResume":return function(e,t,n){return{type:"ParallelResume",value:t,branchCount:e.branchCount,completedBranches:e.completedBranches,suspendedBranches:e.suspendedBranches,k:n}}(e,t,o);case"EvalArgs":return function(e,t,r){const{node:o,params:i,placeholders:a,env:u}=e,c=o[1][1],l=c[e.index];if(Xt(l)){if(!Array.isArray(t))throw new n(`Spread operator requires an array, got ${v(t)}`,l[2]);i.push(...t)}else i.push(t);let f=e.index+1;for(;f<c.length;){const e=c[f];if(e[0]!==s.ReservedSymbol||"_"!==e[1])break;a.push(i.length),f++}if(f>=c.length)return Zr({...e,index:f},r);const d={...e,index:f},p=c[f];if(Xt(p))return{type:"Eval",node:p[1],env:u,k:[d,...r]};return{type:"Eval",node:p,env:u,k:[d,...r]}}(e,t,o);case"CallFn":return function(e,t,n){const r=J(t,e.sourceCodeInfo);return eo(r,e.params,e.placeholders,e.env,e.sourceCodeInfo,n)}(e,t,o);case"FnBody":return function(e,t,n){const{fn:r,bodyIndex:o,env:i}=e,a=r.evaluatedfunction[1];if(o>=a.length)return{type:"Value",value:t,k:n};const s={...e,bodyIndex:o+1};return{type:"Eval",node:a[o],env:i,k:[s,...n]}}(e,t,o);case"BindingDefault":return function(e,t,r){const{target:o,record:i,env:a,sourceCodeInfo:s}=e,u=yt(o,t,e=>zr(e,a));if(u instanceof Promise)throw new n("Async binding default evaluation not supported in trampoline yet",s);return Object.assign(i,u),{type:"Value",value:t,k:r}}(e,t,o);case"NanCheck":return function(e,t,r){if("number"==typeof t&&Number.isNaN(t))throw new n("Number is NaN",e.sourceCodeInfo);return{type:"Value",value:Ve(t),k:r}}(e,t,o);case"DebugStep":return function(e,t,n){if("awaitValue"===e.phase){const r={expression:e.sourceCodeInfo?.code??"",value:t,location:e.sourceCodeInfo?{line:e.sourceCodeInfo.position.line,column:e.sourceCodeInfo.position.column}:{line:0,column:0},env:vo(e.env)},o={type:"DebugStep",phase:"awaitPerform",sourceCodeInfo:e.sourceCodeInfo,env:e.env};return{type:"Perform",effect:Vr("dvala.debug.step"),args:[r],k:[o,...n]}}return{type:"Value",value:t,k:n}}(e,t,o);case"ImportMerge":{const n={...e.tsFunctions,...B(t)?t:{}};return e.env.registerValueModule(e.moduleName,n),{type:"Value",value:n,k:o}}default:throw new n(`Unhandled frame type: ${e.type}`,void 0)}}function ro(e,t){const{matchValue:r,cases:o,index:i,env:a,sourceCodeInfo:s}=e;for(let u=i;u<o.length;u++){const[i,c,l]=o[u],f=bt(i,r,e=>zr(e,a));if(f instanceof Promise)throw new n("Async pattern matching not supported in trampoline yet",s);if(null===f)continue;if(l){const n={};for(const[e,t]of Object.entries(f))n[e]={value:t};return{type:"Eval",node:l,env:a.create(n),k:[{...e,phase:"guard",index:u,bindings:f},...t]}}const d={};for(const[e,t]of Object.entries(f))d[e]={value:t};return{type:"Eval",node:c,env:a.create(d),k:t}}return{type:"Value",value:null,k:t}}function oo(e,t){const{nodes:n,env:r}=e;let{index:o}=e;for(;o<n.length;){const e=n[o];if(!qt(e)||null!==r.lookUp(e))break;o++}if(o>=n.length)return{type:"Value",value:null,k:t};if(o===n.length-1)return{type:"Eval",node:n[o],env:r,k:t};const i={...e,index:o+1};return{type:"Eval",node:n[o],env:r,k:[i,...t]}}function io(e,t){return{type:"Value",value:e.returnResult?e.result:null,k:t}}function ao(e,t){const{bindingNodes:n,env:r,sourceCodeInfo:o,context:i}=e,a=[...e.levelStates],s=e.bindingLevel,u=a[s],c=u.index+1;if(c>=u.collection.length)return 0===s?io(e,t):ao({...e,bindingLevel:s-1},t);a[s]={...u,index:c};const l=n[s];return ve(yt(l[0][1][0],U(u.collection[c],o),e=>zr(e,r)),n=>{Object.entries(n).forEach(([e,t])=>{i[e]={value:t}});const r=l[1];return r.length>0?so({...e,levelStates:a,bindingLevel:s},a,r,0,t):uo({...e,levelStates:a,bindingLevel:s},a,t)})}function so(e,t,n,r,o){const{env:i,context:a}=e;let s;for(let e=r;e<n.length;e++){const t=e;s=ve(s,()=>{const e=n[t],[r,o]=e[1];return ve(zr(o,i),e=>ve(yt(r,e,e=>zr(e,i)),e=>{Object.entries(e).forEach(([e,t])=>{a[e]={value:t}})}))})}return ve(s,()=>uo({...e,levelStates:t},t,o))}function uo(e,t,n){const{bindingNodes:r,env:o}=e,i=r[e.bindingLevel],a=i[2],s=i[3];if(a){return{type:"Eval",node:a,env:o,k:[{...e,levelStates:t,phase:"evalWhen"},...n]}}if(s){return{type:"Eval",node:s,env:o,k:[{...e,levelStates:t,phase:"evalWhile"},...n]}}return co({...e,levelStates:t},n)}function co(e,t){const{bindingNodes:n,body:r,env:o}=e,i=e.bindingLevel+1;if(i<n.length){return{type:"Eval",node:n[i][0][1][1],env:o,k:[{...e,phase:"evalCollection",bindingLevel:i},...t]}}return{type:"Eval",node:r,env:o,k:[{...e,phase:"evalBody"},...t]}}function lo(e,t){for(let n=0;n<t.length;n++){const r=t[n];if("TryCatch"===r.type){const{errorSymbol:o,catchNode:i,env:a}=r,s=o?{[o]:{value:e}}:{},u=t.slice(n+1);return{type:"Eval",node:i,env:a.create(s),k:u}}}throw e}function fo(e,t,r){for(let o=0;o<t.length;o++){const i=t[o];if("LoopIterate"===i.type){const{bindingNodes:a,bindingContext:s,body:u,env:c}=i,l=t.slice(o+1);if(e.length!==a.length)throw new n(`recur expected ${a.length} parameters, got ${e.length}`,r);const f=ke(a,(t,n)=>ve(yt(t[1][0],ue(e[n]),e=>zr(e,c)),e=>{Object.entries(e).forEach(([e,t])=>{s[e]={value:t}})}));return ve(f,()=>{const e=c.getContextsRaw()[0];if(e!==s)for(const[t,n]of Object.entries(s))e[t]=n;const t={type:"LoopIterate",bindingNodes:a,bindingContext:s,body:u,env:c,sourceCodeInfo:i.sourceCodeInfo};return{type:"Eval",node:u,env:c,k:[t,...l]}})}if("FnBody"===i.type){const{fn:n,outerEnv:r}=i,a=t.slice(o+1);return to(n,e,r,i.sourceCodeInfo,a)}}throw new n("recur called outside of loop or function body",r)}function po(e,t,r,o,i,a){for(let n=0;n<r.length;n++){const i=r[n];if("TryWith"===i.type)for(const a of i.handlers)if(z(a.effectRef)&&a.effectRef.name===e.name){const e=r;let s=n+1;s<r.length&&"TryCatch"===r[s].type&&s++;const u=[{type:"EffectResume",resumeK:e,sourceCodeInfo:o},...r.slice(s)];return eo(J(zr(a.handlerNode,i.env),i.sourceCodeInfo),[t],[],i.env,o,u)}}const s=i?.[e.name];if(s)return function(e,t,r,o,i){const a=o??(new AbortController).signal;return new Promise((o,s)=>{let u=!1;const c={args:Array.from(t),signal:a,resume:e=>{if(u)throw new n("Effect handler called resume() more than once or after suspend()",i);u=!0,e instanceof Promise?e.then(e=>{o({type:"Value",value:e,k:r})},e=>{try{o(lo(e instanceof Error?new n(e,i):new n(`${e}`,i),r))}catch(e){s(e)}}):o({type:"Value",value:e,k:r})},suspend:e=>{if(u)throw new n("Effect handler called suspend() more than once or after resume()",i);u=!0,s(new Or(r,e))}};e(c).catch(e=>{if(!u)if(u=!0,Ur(e))s(e);else try{o(lo(e instanceof Error?new n(e,i):new n(`${e}`,i),r))}catch(e){s(e)}})})}(s,t,r,a,o);const u=(c=e.name,Dr[c]);var c;if(u)return u(t,r,o);throw new n(`Unhandled effect: '${e.name}'`,o)}function ho(e,t){throw new Or(e,t)}async function yo(e,t,n,r){return So({type:"Eval",node:e,env:t,k:[]},n,r)}function vo(e){const t={},n=e.getHostValues();if(n)for(const[e,r]of Object.entries(n))t[e]=r;const r=e.getContextsRaw();for(let e=r.length-1;e>=0;e--)for(const[n,o]of Object.entries(r[e]))t[n]=o.value;return t}function go(e,t){return e instanceof Promise?e.then(e=>({type:"Value",value:e,k:t}),e=>lo(e,t)):{type:"Value",value:e,k:t}}function mo(e,t,r){try{switch(e.type){case"Value":{if(0===e.k.length)return e;const[t,...n]=e.k;return no(t,e.value,n)}case"Eval":return Qr(e.node,e.env,e.k);case"Apply":return no(e.frame,e.value,e.k);case"Perform":return po(e.effect,e.args,e.k,void 0,t,r);case"Parallel":return async function(e,t,r,o,i){const a=i??(new AbortController).signal,s=e.map(e=>yo(e,t,o,a)),u=await Promise.allSettled(s),c=[],l=[],f=[];for(let e=0;e<u.length;e++){const t=u[e];if("rejected"===t.status)f.push(new n(`${t.reason}`,void 0));else{const n=t.value;switch(n.type){case"completed":c.push({index:e,value:n.value});break;case"suspended":l.push({index:e,blob:n.blob,meta:n.meta});break;case"error":f.push(n.error)}}}if(f.length>0)throw f[0];if(l.length>0)return ho([{type:"ParallelResume",branchCount:e.length,completedBranches:c,suspendedBranches:l.slice(1)},...r],l[0].meta);const d=Array.from({length:e.length});for(const{index:e,value:t}of c)d[e]=t;return{type:"Value",value:d,k:r}}(e.branches,e.env,e.k,t,r);case"Race":return async function(e,t,r,o,i){const a=i??(new AbortController).signal,s=e.map(()=>new AbortController),u=()=>{for(const e of s)e.abort(a.reason)};a.addEventListener("abort",u,{once:!0});try{let i=-1,a=null;const u=e.map(async(e,n)=>{const r=s[n].signal,u=await yo(e,t,o,r);if("completed"===u.type&&i<0){i=n,a=u.value;for(let e=0;e<s.length;e++)e!==n&&s[e].abort("race: branch lost")}return u}),c=await Promise.allSettled(u);if(i>=0)return{type:"Value",value:a,k:r};const l=[],f=[];for(let e=0;e<c.length;e++){const t=c[e];if("rejected"===t.status)f.push(new n(`${t.reason}`,void 0));else{const e=t.value;switch(e.type){case"suspended":l.push(e.meta??null);break;case"error":f.push(e.error)}}}l.length>0&&ho(r,{type:"race",branches:l});const d=f.map(e=>e.message).join("; ");throw new n(`race: all branches failed: ${d}`,void 0)}finally{a.removeEventListener("abort",u)}}(e.branches,e.env,e.k,t,r);case"ParallelResume":return function(e){const{value:t,branchCount:n,completedBranches:r,suspendedBranches:o,k:i}=e,a=new Set(r.map(e=>e.index)),s=new Set(o.map(e=>e.index));let u=-1;for(let e=0;e<n;e++)if(!a.has(e)&&!s.has(e)){u=e;break}const c=[...r,{index:u,value:t}];if(o.length>0){const e=o[0];return ho([{type:"ParallelResume",branchCount:n,completedBranches:c,suspendedBranches:o.slice(1)},...i],e.meta)}const l=Array.from({length:n});for(const{index:e,value:t}of c)l[e]=t;return{type:"Value",value:l,k:i}}(e)}}catch(t){if(Ur(t))throw t;return lo(t,e.k)}}function bo(e){let t=e;for(;;){if(t instanceof Promise)throw new n("Unexpected async operation in synchronous context. Use async.run() for async operations.",void 0);if("Value"===t.type&&0===t.k.length)return t.value;t=mo(t)}}async function wo(e){let t=e;for(;;){if(t instanceof Promise&&(t=await t),"Value"===t.type&&0===t.k.length)return t.value;t=mo(t)}}function ko(e,t){if(0===e.length)return{type:"Value",value:null,k:[]};if(1===e.length)return{type:"Eval",node:e[0],env:t,k:[]};const n={type:"Sequence",nodes:e,index:1,env:t};return{type:"Eval",node:e[0],env:t,k:[n]}}function xo(e,t){const r=ko(e.body,t);try{return bo(r)}catch(r){if(r instanceof n&&r.message.includes("Unexpected async operation")){return wo(ko(e.body,t))}throw r}}function Eo(e,t){const r={type:"Eval",node:e,env:t,k:[]};try{return bo(r)}catch(r){if(r instanceof n&&r.message.includes("Unexpected async operation")){return wo({type:"Eval",node:e,env:t,k:[]})}throw r}}async function So(e,t,r){const o=null!=t&&"dvala.debug.step"in t;try{let n=e;for(;;){if(n instanceof Promise&&(n=await n),"Value"===n.type&&0===n.k.length)return{type:"completed",value:n.value};if(o&&"Eval"===n.type&&n.node[2]){const e=n.node[0];if(e===s.NormalExpression||e===s.SpecialExpression){const e={type:"DebugStep",phase:"awaitValue",sourceCodeInfo:n.node[2],env:n.env};n={...n,k:[e,...n.k]}}}n=mo(n,t,r)}}catch(e){if(Ur(e)){return{type:"suspended",blob:Lr(e.k,e.meta),meta:e.meta}}return e instanceof n?{type:"error",error:e}:{type:"error",error:new n(`${e}`,void 0)}}}new Set(Object.keys(Dr));const No=new Set([...Jt,...Wt,...Object.keys(rr)]);class Po{originalProgram;originalPosition;prefixProgram="";suffixProgram="";searchString="";suggestions=[];suggestionIndex=null;constructor(e,t,n,r){this.originalProgram=e,this.originalPosition=t;const o=this.originalProgram.slice(0,this.originalPosition),i=n.tokenize(o).tokens.at(-1);i&&"Error"!==i[0]&&(this.searchString=i[1],this.prefixProgram=this.originalProgram.slice(0,this.originalPosition-this.searchString.length),this.suffixProgram=this.originalProgram.slice(this.prefixProgram.length+this.searchString.length),this.originalProgram.slice(this.prefixProgram.length+this.searchString.length),this.suggestions=this.generateSuggestions(r))}getNextSuggestion(){return this.getAutoCompleteSuggestionResult(this.getNextSuggestionSymbol())}getPreviousSuggestion(){return this.getAutoCompleteSuggestionResult(this.getPreviousSuggestionSymbol())}getAutoCompleteSuggestionResult(e){return null===e?null:{program:this.prefixProgram+e+this.suffixProgram,position:this.prefixProgram.length+e.length}}getNextSuggestionSymbol(){return 0===this.suggestions.length?null:(null===this.suggestionIndex?this.suggestionIndex=0:(this.suggestionIndex+=1,this.suggestionIndex>=this.suggestions.length&&(this.suggestionIndex=0)),this.suggestions[this.suggestionIndex])}getPreviousSuggestionSymbol(){return 0===this.suggestions.length?null:(null===this.suggestionIndex?this.suggestionIndex=this.suggestions.length-1:(this.suggestionIndex-=1,this.suggestionIndex<0&&(this.suggestionIndex=this.suggestions.length-1)),this.suggestions[this.suggestionIndex])}getSuggestions(){return[...this.suggestions]}getSearchString(){return this.searchString}generateSuggestions(e){const t=new Set(["0_defn","0_lambda"]),n=this.generateWithPredicate(e,e=>!t.has(e)&&e.startsWith(this.searchString));n.forEach(e=>t.add(e));const r=this.generateWithPredicate(e,e=>!t.has(e)&&e.toLowerCase().startsWith(this.searchString.toLowerCase()));r.forEach(e=>t.add(e));const o=this.generateWithPredicate(e,e=>!t.has(e)&&e.includes(this.searchString));o.forEach(e=>t.add(e));const i=this.generateWithPredicate(e,e=>!t.has(e)&&e.includes(this.searchString.toLowerCase()));return i.forEach(e=>t.add(e)),[...n,...r,...o,...i]}generateWithPredicate(e,t){const n=new Set;return No.forEach(e=>{t(e)&&n.add(e)}),Object.keys(e.globalContext??{}).filter(t).forEach(e=>n.add(e)),e.contexts?.forEach(e=>{Object.keys(e).filter(t).forEach(e=>n.add(e))}),Object.keys(e.bindings??{}).filter(t).forEach(e=>n.add(e)),[...n].sort((e,t)=>e.localeCompare(t))}}function $o(e){return"object"==typeof e&&null!==e&&"string"==typeof e.program&&Array.isArray(e.fileModules)}class Co{cache={};firstEntry=void 0;lastEntry=void 0;_size=0;maxSize;constructor(e){var t;if(this.maxSize=null===e?null:(t=e,Math.max(0,Math.ceil(t))),"number"==typeof this.maxSize&&this.maxSize<1)throw new Error(`1 is the minimum maxSize, got ${v(e)}`)}getContent(){return Object.entries(this.cache).reduce((e,[t,n])=>(e[t]=n.value,e),{})}get size(){return this._size}get(e){return this.cache[e]?.value}clear(){this.cache={},this.firstEntry=void 0,this.lastEntry=void 0,this._size=0}has(e){return!!this.cache[e]}set(e,t){if(this.has(e))throw new Error(`AstCache - key already present: ${e}`);const n={value:t,nextEntry:void 0,key:e};for(this.cache[e]=n,this._size+=1,this.lastEntry&&(this.lastEntry.nextEntry=n),this.lastEntry=n,this.firstEntry||(this.firstEntry=this.lastEntry);null!==this.maxSize&&this.size>this.maxSize;)this.dropFirstEntry()}dropFirstEntry(){const e=this.firstEntry;delete this.cache[e.key],this._size-=1,this.firstEntry=e.nextEntry}}class Io{astCache;astCacheSize;debug;modules;constructor(e={}){if(this.debug=e.debug??!1,this.astCacheSize=e.astCacheSize??null,this.astCacheSize){this.astCache=new Co(this.astCacheSize);const t=e.initialCache??{};for(const e of Object.keys(t))this.astCache.set(e,t[e])}else this.astCache=null;const t=e.modules??[];this.modules=new Map(t.map(e=>[e.name,e]))}getRuntimeInfo(){return{astCacheSize:this.astCacheSize,astCache:this.astCache,debug:this.debug}}async={run:async(e,t={})=>{if($o(e))return this.runBundle(e,t);const n=this.generateAst(e,t);return this.evaluateAsync(n,t)},apply:async(e,t,n={})=>this.apply(e,t,n)};run(e,t={}){if($o(e))return this.runBundle(e,t);const n=this.generateAst(e,t),r=this.evaluate(n,t);if(r instanceof Promise)throw new TypeError("Unexpected async result in synchronous run(). Use dvala.async.run() for async operations.");return r}runBundle(e,t={}){const n=Rr(t,this.modules,t.pure),r=n.pure;n.pure=!0;for(const[r,o]of e.fileModules){const e=xo(this.generateAst(o,t),n.create({}));n.registerValueModule(r,e)}n.pure=r;const o=xo(this.generateAst(e.program,t),n);if(o instanceof Promise)throw new TypeError("Unexpected async result in synchronous runBundle(). Use dvala.async.run() for async operations.");return o}getUndefinedSymbols(e,t={}){const n="string"==typeof e?this.generateAst(e,t):e,r=Rr(t,this.modules);return Qt(n,r,zt,Eo)}tokenize(e,t={}){const n=Ir(e,this.debug,t.filePath);return t.minify?pr(n,{removeWhiteSpace:!1}):n}parse(e){const t={body:[],hasDebugData:(e=pr(e,{removeWhiteSpace:!0})).hasDebugData};return t.body=dr(e),t}evaluate(e,t){return xo(e,Rr(t,this.modules,t.pure))}evaluateAsync(e,t){return function(e,t){return wo(ko(e.body,t))}(e,Rr(t,this.modules,t.pure))}transformSymbols(e,t){return function(e,t){return{...e,tokens:e.tokens.map(e=>cn(e)?[e[0],t(e[1])]:e)}}(e,t)}untokenize(e){return function(e){return e.tokens.reduce((e,t)=>`${e}${t[1]}`,"")}(e)}apply(e,t,n={}){const r="FN_2eb7b316_471c_5bfa_90cb_d3dfd9164a59",o=this.generateApplyFunctionCall(r,t),i=this.generateAst(o,n),a=t.reduce((e,t,n)=>(e[`${r}_${n}`]=t,e),{[r]:e});return n.bindings={...n.bindings,...a},this.evaluate(i,n)}generateApplyFunctionCall(e,t){const n=t.map((t,n)=>`${e}_${n}`).join(", ");return`${e}(${n})`}generateAst(e,t){if(this.astCache){const t=this.astCache.get(e);if(t)return t}const n=this.tokenize(e,{filePath:t.filePath}),r=this.parse(n);return this.astCache?.set(e,r),r}getAutoCompleter(e,t,n={}){return new Po(e,t,this,n)}}function Ao(e){return{body:dr(pr(Ir(e,!1,void 0),{removeWhiteSpace:!0})),hasDebugData:!1}}function jo(e,t){const n=t?.modules?new Map(t.modules.map(e=>[e.name,e])):void 0,r=Rr({bindings:t?.bindings},n),o=xo(Ao(e),r);if(o instanceof Promise)throw new TypeError("Unexpected async operation in runSync(). Use run() for async operations.");return o}async function Oo(e,t){try{const n=t?.modules?new Map(t.modules.map(e=>[e.name,e])):void 0,r=Rr({bindings:t?.bindings},n),o=Ao(e);return await async function(e,t,n){const r=(new AbortController).signal;return So(ko(e.body,t),n,r)}(o,r,t?.handlers)}catch(e){return e instanceof n?{type:"error",error:e}:{type:"error",error:new n(`${e}`,void 0)}}}async function Uo(e,t,r){try{const o=r?.modules?new Map(r.modules.map(e=>[e.name,e])):void 0,{k:i}=function(e,t){let r;try{r=JSON.parse(e)}catch{throw new n("Invalid suspension blob: not valid JSON",void 0)}if(1!==r.version)throw new n(`Unsupported suspension blob version: ${r.version} (expected 1)`,void 0);const o=new Map;for(const e of r.contextStacks){const n=e.contexts.map(()=>({})),r=Fr.fromDeserialized({contexts:n,globalContextIndex:e.globalContextIndex,values:t?.values,nativeJsFunctions:t?.nativeJsFunctions,modules:t?.modules,pure:e.pure});o.set(e.id,r)}function i(e){if(function(e){return null!==e&&"object"==typeof e&&"__csRef"in e&&"number"==typeof e.__csRef}(e)){const t=o.get(e.__csRef);if(!t)throw new n(`Invalid suspension blob: unknown context stack ref ${e.__csRef}`,void 0);return t}if(Array.isArray(e))return e.map(i);if(null!==e&&"object"==typeof e){const t={};for(const[n,r]of Object.entries(e))t[n]=i(r);return t}return e}for(const e of r.contextStacks){const t=o.get(e.id),n=e.contexts.map(e=>{const t=e,n={};for(const[e,r]of Object.entries(t))n[e]={value:i(r.value)};return n});t.setContextsFromDeserialized(n,e.globalContextIndex)}return{k:i(r.k),meta:void 0!==r.meta?i(r.meta):void 0}}(e,{values:r?.bindings,modules:o});return await async function(e,t,n){return So({type:"Value",value:t,k:e},n,(new AbortController).signal)}(i,t,r?.handlers)}catch(e){return e instanceof n?{type:"error",error:e}:{type:"error",error:new n(`${e}`,void 0)}}}export{Io as Dvala,E as asDvalaFunction,I as asNativeJsFunction,P as asUserDefinedFunction,S as assertDvalaFunction,A as assertNativeJsFunction,$ as assertUserDefinedFunction,j as isBuiltinFunction,$o as isDvalaBundle,a as isDvalaError,x as isDvalaFunction,Re as isGrid,_e as isMatrix,C as isNativeJsFunction,N as isUserDefinedFunction,Fe as isVector,Jt as normalExpressionKeys,Uo as resume,Oo as run,jo as runSync,Wt as specialExpressionKeys};
|
|
2
|
+
//# sourceMappingURL=index.esm.js.map
|