@cortex-js/compute-engine 0.129.0 → 0.129.1
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/dist/esm-min/chunks/{chunk-RKFNDUDQ.js → chunk-75MH3VS7.js} +3 -3
- package/dist/esm-min/chunks/{chunk-3XFZFOXD.js → chunk-S6UB43FH.js} +1 -1
- package/dist/esm-min/cli/epsil.js +1 -1
- package/dist/esm-min/compile.js +2 -2
- package/dist/esm-min/compute-engine.js +2 -2
- package/dist/esm-min/core.js +2 -2
- package/dist/esm-min/epsil.js +3 -3
- package/dist/esm-min/identities.js +2 -2
- package/dist/esm-min/integration-rules.js +3 -3
- package/dist/esm-min/interval.js +2 -2
- package/dist/esm-min/latex-syntax.js +2 -2
- package/dist/esm-min/math-json.js +2 -2
- package/dist/esm-min/numerics.js +2 -2
- package/dist/types/big-decimal/big-decimal.d.ts +1 -1
- package/dist/types/big-decimal/index.d.ts +1 -1
- package/dist/types/big-decimal/transcendentals.d.ts +1 -1
- package/dist/types/big-decimal/utils.d.ts +1 -1
- package/dist/types/common/ansi-codes.d.ts +1 -1
- package/dist/types/common/cache-stats.d.ts +1 -1
- package/dist/types/common/configuration-change.d.ts +1 -1
- package/dist/types/common/debug-hook.d.ts +1 -1
- package/dist/types/common/debug.d.ts +1 -1
- package/dist/types/common/fuzzy-string-match.d.ts +1 -1
- package/dist/types/common/grapheme-splitter.d.ts +1 -1
- package/dist/types/common/interruptible.d.ts +1 -1
- package/dist/types/common/kleene.d.ts +1 -1
- package/dist/types/common/one-of.d.ts +1 -1
- package/dist/types/common/signals.d.ts +1 -1
- package/dist/types/common/styled-text.d.ts +1 -1
- package/dist/types/common/terminal.d.ts +1 -1
- package/dist/types/common/type/ast-nodes.d.ts +1 -1
- package/dist/types/common/type/boxed-type.d.ts +1 -1
- package/dist/types/common/type/compatibility.d.ts +1 -1
- package/dist/types/common/type/conditional-conformance.d.ts +1 -1
- package/dist/types/common/type/effects.d.ts +1 -1
- package/dist/types/common/type/facts.d.ts +1 -1
- package/dist/types/common/type/immutable.d.ts +1 -1
- package/dist/types/common/type/instantiate.d.ts +1 -1
- package/dist/types/common/type/intern.d.ts +1 -1
- package/dist/types/common/type/lexer.d.ts +1 -1
- package/dist/types/common/type/numeric-range.d.ts +1 -1
- package/dist/types/common/type/parse.d.ts +1 -1
- package/dist/types/common/type/parser.d.ts +1 -1
- package/dist/types/common/type/primitive.d.ts +1 -1
- package/dist/types/common/type/reduce.d.ts +1 -1
- package/dist/types/common/type/reference.d.ts +1 -1
- package/dist/types/common/type/serialize.d.ts +1 -1
- package/dist/types/common/type/size-cap.d.ts +1 -1
- package/dist/types/common/type/subtype.d.ts +1 -1
- package/dist/types/common/type/type-builder.d.ts +1 -1
- package/dist/types/common/type/types.d.ts +1 -1
- package/dist/types/common/type/utils.d.ts +1 -1
- package/dist/types/common/type/variance.d.ts +1 -1
- package/dist/types/common/type/widen-value.d.ts +1 -1
- package/dist/types/common/utils.d.ts +1 -1
- package/dist/types/compile.d.ts +1 -1
- package/dist/types/compute-engine/assume.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/ambient-chain.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/async-only-descendants.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/binders.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/binding-sites.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/binding-tombstone.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-character.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-object.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/broadcast-cell-widening.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/broadcast-lift-type.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/call-result-type.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/callback-arity.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/collection-element-memo.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/conditional-value.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/constraint-subject.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/cycle-guard.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/definition-guards.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/derive-application-type.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/diophantine.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/effects-inference.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/effects-of.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/effects-provenance.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/error-value.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/exp-to-trig.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/explain-labels.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/explain.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/function-literal.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/generic-instantiation.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/inferred-annotations.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/infinite-point.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/literal-tier.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/logarithm.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/machine-number.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/match-dispatch.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/modular-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/multivariate-gcd.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/multivariate-poly.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/named-arguments.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/number-set-types.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/object-deps.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/object-walk.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/operand-descriptor.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/overload.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/provisional-application.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/recursive-list-builder.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rule-index.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-congruence.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-domain.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve-system.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/tensor-view.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/tuple-pattern.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/type-compatibility-error.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/type-provenance.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
- package/dist/types/compute-engine/boxed-expression/value-membership.d.ts +1 -1
- package/dist/types/compute-engine/checkpoint-journal.d.ts +1 -1
- package/dist/types/compute-engine/checkpoint.d.ts +1 -1
- package/dist/types/compute-engine/clause-identity.d.ts +1 -1
- package/dist/types/compute-engine/collection-utils.d.ts +1 -1
- package/dist/types/compute-engine/compilation/angular-unit.d.ts +1 -1
- package/dist/types/compute-engine/compilation/auto-escalation.d.ts +1 -1
- package/dist/types/compute-engine/compilation/base-compiler.d.ts +1 -1
- package/dist/types/compute-engine/compilation/builtin-callback.d.ts +1 -1
- package/dist/types/compute-engine/compilation/color-space-fact.d.ts +1 -1
- package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
- package/dist/types/compute-engine/compilation/constant-folding.d.ts +1 -1
- package/dist/types/compute-engine/compilation/cse.d.ts +1 -1
- package/dist/types/compute-engine/compilation/deprecation-warnings.d.ts +1 -1
- package/dist/types/compute-engine/compilation/derivative-closed-form.d.ts +1 -1
- package/dist/types/compute-engine/compilation/diagnostics.d.ts +1 -1
- package/dist/types/compute-engine/compilation/fixed-width-unroll.d.ts +1 -1
- package/dist/types/compute-engine/compilation/function-purity.d.ts +1 -1
- package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/gpu-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/gpu-value-facts.d.ts +1 -1
- package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-selection-fusion.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-statements.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/javascript-value-facts.d.ts +1 -1
- package/dist/types/compute-engine/compilation/jet-derivative.d.ts +1 -1
- package/dist/types/compute-engine/compilation/protocol-dispatch.d.ts +1 -1
- package/dist/types/compute-engine/compilation/provable-kind.d.ts +1 -1
- package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
- package/dist/types/compute-engine/compilation/storage-hints.d.ts +1 -1
- package/dist/types/compute-engine/compilation/types.d.ts +1 -1
- package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
- package/dist/types/compute-engine/cost-function.d.ts +1 -1
- package/dist/types/compute-engine/declaration-origin.d.ts +1 -1
- package/dist/types/compute-engine/differential-equation-utils.d.ts +1 -1
- package/dist/types/compute-engine/engine-assumptions.d.ts +1 -1
- package/dist/types/compute-engine/engine-boxing-state.d.ts +1 -1
- package/dist/types/compute-engine/engine-cache.d.ts +1 -1
- package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
- package/dist/types/compute-engine/engine-compilation-targets.d.ts +1 -1
- package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
- package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
- package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
- package/dist/types/compute-engine/engine-inspectable-scope.d.ts +1 -1
- package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
- package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
- package/dist/types/compute-engine/engine-protocols.d.ts +1 -1
- package/dist/types/compute-engine/engine-runtime-state.d.ts +1 -1
- package/dist/types/compute-engine/engine-scope.d.ts +1 -1
- package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
- package/dist/types/compute-engine/engine-simplification-rules.d.ts +1 -1
- package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
- package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
- package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
- package/dist/types/compute-engine/free-functions.d.ts +1 -1
- package/dist/types/compute-engine/function-properties/index.d.ts +1 -1
- package/dist/types/compute-engine/function-properties/types.d.ts +1 -1
- package/dist/types/compute-engine/function-utils.d.ts +1 -1
- package/dist/types/compute-engine/fungrim/loader.d.ts +1 -1
- package/dist/types/compute-engine/fungrim/types.d.ts +1 -1
- package/dist/types/compute-engine/global-types.d.ts +1 -1
- package/dist/types/compute-engine/implicit-compile.d.ts +1 -1
- package/dist/types/compute-engine/index.d.ts +1 -1
- package/dist/types/compute-engine/inference-rollback.d.ts +1 -1
- package/dist/types/compute-engine/interpret-oeis.d.ts +1 -1
- package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/interval/collections.d.ts +1 -1
- package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
- package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
- package/dist/types/compute-engine/interval/index.d.ts +1 -1
- package/dist/types/compute-engine/interval/integrate.d.ts +1 -1
- package/dist/types/compute-engine/interval/rounding.d.ts +1 -1
- package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
- package/dist/types/compute-engine/interval/types.d.ts +1 -1
- package/dist/types/compute-engine/interval/util.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/delimiter-tables.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-colors.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/style-options.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -1
- package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
- package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/calculus.d.ts +1 -1
- package/dist/types/compute-engine/library/collections.d.ts +1 -1
- package/dist/types/compute-engine/library/colors.d.ts +1 -1
- package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
- package/dist/types/compute-engine/library/complex.d.ts +1 -1
- package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
- package/dist/types/compute-engine/library/core.d.ts +1 -1
- package/dist/types/compute-engine/library/distributions.d.ts +1 -1
- package/dist/types/compute-engine/library/fractals.d.ts +1 -1
- package/dist/types/compute-engine/library/library.d.ts +1 -1
- package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
- package/dist/types/compute-engine/library/logic.d.ts +1 -1
- package/dist/types/compute-engine/library/map-auto-compile.d.ts +1 -1
- package/dist/types/compute-engine/library/map-broadcast-shape.d.ts +1 -1
- package/dist/types/compute-engine/library/map-exact-proof.d.ts +1 -1
- package/dist/types/compute-engine/library/map-lowering.d.ts +1 -1
- package/dist/types/compute-engine/library/measurement-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/missing-data.d.ts +1 -1
- package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
- package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
- package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
- package/dist/types/compute-engine/library/random-utils.d.ts +1 -1
- package/dist/types/compute-engine/library/regexp.d.ts +1 -1
- package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
- package/dist/types/compute-engine/library/ring-constructions.d.ts +1 -1
- package/dist/types/compute-engine/library/sets.d.ts +1 -1
- package/dist/types/compute-engine/library/special-functions.d.ts +1 -1
- package/dist/types/compute-engine/library/statistics-data.d.ts +1 -1
- package/dist/types/compute-engine/library/statistics.d.ts +1 -1
- package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
- package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
- package/dist/types/compute-engine/library/type-value-utils.d.ts +1 -1
- package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/library/units.d.ts +1 -1
- package/dist/types/compute-engine/library/utils.d.ts +1 -1
- package/dist/types/compute-engine/map-auto-compile-stats.d.ts +1 -1
- package/dist/types/compute-engine/multi-clause.d.ts +1 -1
- package/dist/types/compute-engine/nonlinear-fit.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/exact-integer-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
- package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bernoulli.d.ts +1 -1
- package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/complex-esm-augment.d.ts +1 -1
- package/dist/types/compute-engine/numerics/differential-equations.d.ts +1 -1
- package/dist/types/compute-engine/numerics/diophantine.d.ts +1 -1
- package/dist/types/compute-engine/numerics/distributions.d.ts +1 -1
- package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
- package/dist/types/compute-engine/numerics/gauss-kronrod.d.ts +1 -1
- package/dist/types/compute-engine/numerics/interval-arithmetic.d.ts +1 -1
- package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
- package/dist/types/compute-engine/numerics/levenberg-marquardt.d.ts +1 -1
- package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
- package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
- package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
- package/dist/types/compute-engine/numerics/oscillatory-quadrature.d.ts +1 -1
- package/dist/types/compute-engine/numerics/polynomial-roots.d.ts +1 -1
- package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
- package/dist/types/compute-engine/numerics/random.d.ts +1 -1
- package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
- package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
- package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
- package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
- package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
- package/dist/types/compute-engine/numerics/types.d.ts +1 -1
- package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
- package/dist/types/compute-engine/numerics/value-scaled-caps.d.ts +1 -1
- package/dist/types/compute-engine/oeis.d.ts +1 -1
- package/dist/types/compute-engine/rubi/compile.d.ts +1 -1
- package/dist/types/compute-engine/rubi/driver.d.ts +1 -1
- package/dist/types/compute-engine/rubi/explain-trace.d.ts +1 -1
- package/dist/types/compute-engine/rubi/loader.d.ts +1 -1
- package/dist/types/compute-engine/rubi/match.d.ts +1 -1
- package/dist/types/compute-engine/rubi/normal-form.d.ts +1 -1
- package/dist/types/compute-engine/rubi/rubi-utils.d.ts +1 -1
- package/dist/types/compute-engine/rubi/types.d.ts +1 -1
- package/dist/types/compute-engine/sequence.d.ts +1 -1
- package/dist/types/compute-engine/sum-representation.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/angular-unit.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/differential-equations.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/explain-derivative.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/interior-pole.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/interpret.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/limit.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/recurrences.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/residue.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/series.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/solver-utils.d.ts +1 -1
- package/dist/types/compute-engine/symbolic/trig-rewrite.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
- package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
- package/dist/types/compute-engine/type-constructors.d.ts +1 -1
- package/dist/types/compute-engine/types-definitions.d.ts +1 -1
- package/dist/types/compute-engine/types-engine.d.ts +1 -1
- package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-expression.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
- package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types-serialization.d.ts +1 -1
- package/dist/types/compute-engine/types.d.ts +1 -1
- package/dist/types/compute-engine.d.ts +1 -1
- package/dist/types/core.d.ts +1 -1
- package/dist/types/epsil/characters.d.ts +1 -1
- package/dist/types/epsil/definition-sites.d.ts +1 -1
- package/dist/types/epsil/diagnostics.d.ts +1 -1
- package/dist/types/epsil/error-location.d.ts +1 -1
- package/dist/types/epsil/execute-epsil.d.ts +1 -1
- package/dist/types/epsil/formatter.d.ts +1 -1
- package/dist/types/epsil/lexer.d.ts +1 -1
- package/dist/types/epsil/library-names.d.ts +1 -1
- package/dist/types/epsil/match-exhaustiveness.d.ts +1 -1
- package/dist/types/epsil/occurrences.d.ts +1 -1
- package/dist/types/epsil/operators.d.ts +1 -1
- package/dist/types/epsil/parse-epsil.d.ts +1 -1
- package/dist/types/epsil/parser.d.ts +1 -1
- package/dist/types/epsil/reserved-words.d.ts +1 -1
- package/dist/types/epsil/resolve-library-names.d.ts +1 -1
- package/dist/types/epsil/serialize-epsil.d.ts +1 -1
- package/dist/types/epsil/signature-notes.d.ts +1 -1
- package/dist/types/epsil/static-diagnostics.d.ts +1 -1
- package/dist/types/epsil/tokens.d.ts +1 -1
- package/dist/types/epsil.d.ts +2 -2
- package/dist/types/identities.d.ts +1 -1
- package/dist/types/integration-rules.d.ts +1 -1
- package/dist/types/interval.d.ts +1 -1
- package/dist/types/latex-syntax.d.ts +2 -2
- package/dist/types/math-json/symbols.d.ts +1 -1
- package/dist/types/math-json/types.d.ts +1 -1
- package/dist/types/math-json/utils.d.ts +1 -1
- package/dist/types/math-json.d.ts +2 -2
- package/dist/types/numerics.d.ts +1 -1
- package/dist/umd-min/compile.cjs +2 -2
- package/dist/umd-min/compute-engine.cjs +2 -2
- package/dist/umd-min/core.cjs +2 -2
- package/dist/umd-min/epsil.cjs +3 -3
- package/dist/umd-min/identities.cjs +2 -2
- package/dist/umd-min/integration-rules.cjs +2 -2
- package/dist/umd-min/interval.cjs +2 -2
- package/dist/umd-min/latex-syntax.cjs +2 -2
- package/dist/umd-min/math-json.cjs +2 -2
- package/dist/umd-min/numerics.cjs +2 -2
- package/package.json +1 -1
package/dist/esm-min/epsil.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/** Compute Engine 0.129.
|
|
2
|
-
import{G as Yr,a as fs,b as hs,c as ps,d as ds,e as ms,f as gs,g as xs,h as nn,i as ys,j as bs,k as Es}from"./chunks/chunk-
|
|
1
|
+
/** Compute Engine 0.129.1 */
|
|
2
|
+
import{G as Yr,a as fs,b as hs,c as ps,d as ds,e as ms,f as gs,g as xs,h as nn,i as ys,j as bs,k as Es}from"./chunks/chunk-75MH3VS7.js";import{A as Vn,Ad as y,Ai as en,Bd as R,Cd as m,Dd as G,Ed as P,F as ce,Fd as ss,Gd as he,H as Zt,Hc as es,Hd as te,Ic as fe,Jd as Qt,Kc as ge,L as Gn,Lc as Se,Ld as rs,Lf as is,Li as os,Mi as pe,N as zn,Ni as as,Oc as lt,X as ke,Y as ue,_ as Un,_b as Qn,ca as Hn,ib as Zn,nb as Te,nj as Je,ob as at,oj as ls,qa as qn,r as Wn,sa as vt,ta as ot,ua as Kn,uj as tn,vd as Tt,vj as cs,wa as Xn,wd as ts,wj as us,xd as ns,zd as _}from"./chunks/chunk-S6UB43FH.js";function sn(r){return r.fg===void 0&&r.bg===void 0&&(r.weight===void 0||r.weight==="normal")&&(r.italic===void 0||r.italic===!1)}var Ot=class{width;indent;constructor(e){this.width=e?.width,this.indent=e?.indent??0}renderBlock(e){let t="spans"in e?this.renderSpans(e.spans):e.blocks.map(n=>this.renderBlock(n)).join(`
|
|
3
3
|
`);return e.tag==="paragraph"?`
|
|
4
4
|
${ct(t,this.width).join(`
|
|
5
5
|
`)}
|
|
@@ -21,4 +21,4 @@ ${ct(t,this.width).join(`
|
|
|
21
21
|
`:t?e+`
|
|
22
22
|
`+t:e+`
|
|
23
23
|
`}countLinebreaks(e){return e.split(/\r\n|\r|\n/).length}normalizedBlocks(e){return e.map(t=>typeof t=="string"?new me(this,t):t).filter(t=>!(t instanceof Le))}infixOperator(e){return new me(this,this.options.aroundInfixOperator+e+this.options.aroundInfixOperator)}relationalOperator(e){return new me(this,this.options.aroundRelationalOperator+e+this.options.aroundRelationalOperator)}separator(e){return new me(this,e+this.options.afterSeparator)}fence(e){return new me(this,e)}text(e){return!e||e.length===0?new Le(this):new me(this,e)}line(...e){let t=this.normalizedBlocks(e),n=[],s="";for(let i of t)i instanceof me?s?(n.pop(),s=s+i.s,n.push(new me(this,s))):(n.push(i),s=i.s):(s="",n.push(i));return n.length===1?n[0]:new Xe(this,...n)}stack(...e){let t=this.normalizedBlocks(e);return t.length===1?t[0]:new It(this,...t)}wrap(...e){let t=this.normalizedBlocks(e);return t.length===1?t[0]:new Tn(this,...t)}indent(e,t=1){return new Xe(this,new me(this,this.indentChars(t)),e)}choice(...e){let t=this.normalizedBlocks(e);return t.length===1?t[0]:new On(this,...t)}fencedBlock(e,t,n){return t?this.fencedList(e,"",n,[t]):this.line(this.fence(e),this.fence(n))}fencedList(e,t,n,s){let i=this.fence(e),o=this.fence(n);if(s.length===0)return this.line(i,o);if(s.length===1)return this.line(i,s[0],o);let a=s.map(c=>this.line(c,t)),u=[...a];return u.pop(),u.push(s[s.length-1]),!e&&!n?this.choice(this.line(...u),this.wrap(...u)):this.choice(this.line(i,...u,o),this.stack(i,this.indent(this.stack(...a)),o))}list(e,t){return this.fencedList("",e,"",t)}};var Ze={positiveInfinity:"Infinity",negativeInfinity:"-Infinity",notANumber:"NaN",imaginaryUnit:"i",decimalSeparator:".",digitGroupSeparator:"_",digitGroup:3,exponentProduct:"",beginExponentMarker:"e",endExponentMarker:"",truncationMarker:"",repeatingDecimal:"none",fractionalDigits:"max",notation:"auto",avoidExponentsInRange:[-7,20]},wn={get names(){return[]},forward:()=>{},resolve:r=>({kind:"reference",name:r,alias:!1,def:void 0}),conformsTo:()=>!0},Di=new Map([...ft].filter(([,r])=>/^[0-9-]$/.test(r)).map(([r,e])=>[e,String.fromCodePoint(r)]));function Rn(r,e){let t=new Ft({...e?.fancySymbols?{aroundInfixOperator:"\u205F",aroundRelationalOperator:"\u2005",afterSeparator:"\u2009"}:{},...e});function n(l){if(l===null)return new Le(t);if(typeof l=="string"&&rs(l)){let E=_(l);if(E!==null)return o(E)}if(typeof l=="object"&&l!==null&&"str"in l)return o(l.str);let h=a(l),p;if(y(l)&&(p=St(l)??je(l)??D(l)),!p){let E=P(l);E!==null&&(p=t.text(X(E)))}if(!p&&(typeof l=="number"||Tt(l)||typeof l=="string"&&Qt(l))){let E=Je(l,Ze);E&&(p=t.text(E))}if(!p){let E=ss(l);if(E!==null){let k=E.dict,w=Object.keys(k).map(C=>t.line(o(C),t.relationalOperator("->"),n(er(k[C]))));if(w.length===0)return t.line(t.fence("{"),t.relationalOperator("->"),t.fence("}"));p=t.fencedList("{",t.separator(","),"}",w)}}return p?h instanceof Le?p:t.choice(t.line(h,p),t.stack(h,p)):t.text()}let s=0;function i(l,h){let p=s;s=l;try{return h()}finally{s=p}}function o(l){return t.text(`"${xt(l)}"`)}function a(l){return typeof l!="object"?t.text():"comment"in l&&l.comment&&l.comment.length>0?t.text(`/* ${l.comment} */`):t.text()}let u={};for(let l of qe)l.name in u||l.name!=="Range"&&(u[l.name]={symbol:l.symbol,fancySymbol:l.fancySymbol,precedence:l.precedence,assoc:l.assoc??"left",unary:l.kind==="prefix",postfix:l.kind==="postfix",relational:l.relational});u.Divide&&!u.Rational&&(u.Rational={...u.Divide}),u.If={symbol:"if",precedence:le,assoc:"left"};let c=l=>l!==null&&(typeof l=="number"||Tt(l)||typeof l=="string"&&Qt(l)),f=l=>{if(!c(l))return!1;let h=he(l);return h!==null&&h<0},d=qe.find(l=>l.name==="Negate").precedence,x=new Set(["Add","Multiply","And","Or"]);function S(l,h,p,g){if(l===null)return!1;let E=y(l),k=u[E];return k?k.precedence<h.precedence?!0:k.precedence===h.precedence?E===p&&x.has(p)?!1:g!==h.assoc:!1:g==="left"&&h.precedence>d&&f(l)}function M(l,h){if(l===null)return!1;if(P(l)!==null)return!0;if(c(l)){let g=he(l);return g!==null&&!Number.isNaN(g)&&g>=0}let p=y(l);return p?h==="radicand"&&(J(l)!==null||p==="Power"&&N(l)!==null)?!0:!(p in u)&&!(p in W):!1}function b(l){if(l===null)return null;if(typeof l=="number")return Number.isSafeInteger(l)?l:null;let h=Tt(l)?l.num:typeof l=="string"?l:null;if(h===null||!/^[+-]?\d+$/.test(h))return null;let p=Number(h);return Number.isSafeInteger(p)?p:null}function N(l){if(!e?.fancySymbols||G(l)!==2)return null;let h=b(m(l,2));return h===null?null:[...String(h)].map(p=>Di.get(p)??p).join("")}function J(l){if(!e?.fancySymbols||l===null)return null;let h=y(l);if(h==="Sqrt"&&G(l)===1)return"\u221A";if(h==="Root"&&G(l)===2){let p=b(m(l,2));if(p===3)return"\u221B";if(p===4)return"\u221C"}return null}function L(l,h){return M(h,"radicand")?t.line(l,n(h)):t.line(l,"(",n(h),")")}let W={Sqrt:l=>{let h=J(l);return h!==null?L(h,m(l,1)):D(l)},Root:l=>{let h=J(l);return h!==null?L(h,m(l,1)):D(l)},Power:l=>{let h=N(l);if(h!==null){let p=m(l,1);return M(p,"base")?t.line(n(p),h):t.line("(",n(p),")",h)}return je(l)??D(l)},BaseForm:l=>{let h=he(m(l,2))??16,p=m(l,1),g=he(p);return g===null||Number.isNaN(g)||!Number.isFinite(g)||!(h===2||h===10||h===16)?D(l):h===2?t.text("0b"+Number(g).toString(2)):h===10?t.text(Je(p,Ze)):h===16?Number.isFinite(g)?Number.isInteger(g)?t.text("0x"+Number(g).toString(16)):t.text(ls(g)):t.text(Je(p,Ze)):D(l)},String:l=>t.wrap('"',...te(l,h=>{let p=_(h);return p!==null?t.text(xt(p)):t.fencedBlock("\\(",n(h),")")}),'"'),List:l=>t.fencedList("[",t.separator(","),"]",te(l,n)),Set:l=>G(l)===0?t.text("{}"):t.fencedList("{",t.separator(","),"}",te(l,n)),Tuple:l=>G(l)<2?D(l):t.fencedList("(",t.separator(","),")",te(l,n)),At:l=>{let h=m(l,1),p=R(l).slice(1);if(h===null||p.length===0)return D(l);let g=u[y(h)]!==void 0?t.line("(",n(h),")"):n(h);return t.line(g,t.fencedList("[",t.separator(","),"]",p.map(E=>n(E))))},Field:l=>{let h=m(l,1),p=m(l,2),g=p===null?null:_(p);if(h===null||g===null||!/^[A-Za-z_][A-Za-z0-9_]*$/.test(g))return D(l);let E=u[y(h)]!==void 0?t.line("(",n(h),")"):n(h);return t.line(E,t.text("."+g))},ProtocolProperty:l=>{if(G(l)!==3)return D(l);let h=_(m(l,1))??P(m(l,1)),p=_(m(l,2))??P(m(l,2)),g=m(l,3);if(h===null||p===null||g===null)return D(l);let E=u[y(g)]!==void 0?t.line("(",n(g),")"):n(g);return t.line(E,t.text(`.(${X(h)}.${X(p)})`))},MemberCall:l=>{let h=m(l,1),p=_(m(l,2))??P(m(l,2));if(h===null||p===null||c(h))return D(l);let g=u[y(h)]!==void 0?t.line("(",n(h),")"):n(h);return t.line(g,t.text("."+X(p)),t.fencedList("(",t.separator(","),")",R(l).slice(2).map(n)))},ProtocolMember:l=>{if(G(l)<3)return D(l);let h=_(m(l,1))??P(m(l,1)),p=_(m(l,2))??P(m(l,2)),g=m(l,3);if(h===null||p===null||g===null||c(g))return D(l);let E=u[y(g)]!==void 0?t.line("(",n(g),")"):n(g);return t.line(E,t.text(`.(${X(h)}.${X(p)})`),t.fencedList("(",t.separator(","),")",R(l).slice(3).map(n)))},Dictionary:l=>G(l)===0?t.line(t.fence("{"),t.relationalOperator("->"),t.fence("}")):t.fencedList("{",t.separator(","),"}",te(l,n)),Spread:l=>G(l)!==1?D(l):t.line("...",n(m(l,1))),NamedArgument:l=>{if(G(l)!==2)return D(l);let h=_(m(l,1));return h===null?D(l):t.line(`${X(h)}: `,n(m(l,2)))},Negate:l=>{if(G(l)!==1)return D(l);let h=m(l,1);return c(h)?t.text(Fi(Je(h,Ze))):je(l)??D(l)},Multiply:l=>{let h=R(l);if(h.length===2&&c(h[0])){let p=P(h[1]);if(p!==null){let g=Je(h[0],Ze);if($i(g,p))return t.text(g+p)}}return je(l)??D(l)},If:l=>Ir(l)??D(l),Block:l=>Ce("do ",l),Loop:l=>$r(l)??D(l),Break:l=>s>0&&G(l)===0?t.text("break"):D(l),Continue:l=>s>0&&G(l)===0?t.text("continue"):D(l),Function:l=>i(0,()=>Q(l)),Typed:l=>{let h=B(m(l,2));if(h!==null&&!ot(h))try{let p=ke(h,wn);if(typeof p!="string"&&p.kind==="signature")return D(l)}catch{}return n(m(l,1))},Declare:l=>{let h=R(l);if(h.length<1||h.length>3)return D(l);let p=h[0],g=Y=>y(Y)==="Tuple"&&G(Y)>=2&&R(Y).every(ne=>P(ne)!==null||g(ne)),E=g(p);if(!E&&P(p)===null)return D(l);let k=null,w=null;for(let Y of h.slice(1)){let ne=Qe(Y);if(ne!==null){if(w!==null)return D(l);w=ne}else{let Ee=_(Y)??P(Y);if(Ee===null||k!==null||w!==null)return D(l);k=Ee}}let C=null,$=!1;if(w!==null)for(let Y of Object.keys(w))if(Y==="value")C=w[Y];else if(Y==="constant"){let ne=w[Y];if((P(ne)??_(ne))!=="True")return D(l);$=!0}else return D(l);if(E&&(k!==null||C===null))return D(l);let F=[$?"const ":"let ",n(p)];return k!==null&&F.push(": "+k),C!==null&&F.push(" = ",n(C)),t.line(...F)},DeclareType:l=>{let h=R(l);if(h.length!==2&&h.length!==3)return D(l);let p=P(h[0])??_(h[0]),g=_(h[1])??P(h[1]);if(p===null||g===null)return D(l);if(h.length===2)return t.line("type ",p," = ",g);let E=Qe(h[2]);if(E===null)return D(l);let k=Object.keys(E);if(k.length===0||k.some(Y=>Y!=="alias"&&Y!=="typeParams"))return D(l);let w=E.alias??null;if(w!==null&&(P(w)??_(w))!=="True")return D(l);let C=w!==null?"type alias ":"type ",$=E.typeParams;if($===void 0)return t.line(C,p," = ",g);let F=_($)??P($);return F===null||F.length===0?D(l):t.line(C,p,"<",F,"> = ",g)},DeclareProtocol:l=>{let h=R(l);if(h.length!==1&&h.length!==2)return D(l);let p=P(h[0])??_(h[0]);if(p===null)return D(l);let g=X(p);if(h.length===1)return t.line("protocol ",g," {}");let E=Qe(h[1]);if(E===null)return D(l);let k=[];for(let[w,C]of Object.entries(E)){if(y(C)!=="Pair"||G(C)!==2)return D(l);let $=_(m(C,1))??P(m(C,1)),F=_(m(C,2))??P(m(C,2));if(F===null)return D(l);if($==="function")k.push(t.text(`function ${X(w)}${F}`));else if($==="readonly"||$==="readwrite")k.push(t.text(`${$} ${X(w)}: ${F}`));else return D(l)}return k.length===0?t.line("protocol ",g," {}"):t.stack(t.line("protocol ",g," {"),t.indent(t.stack(...k)),t.text("}"))},DeclareConformance:l=>{let h=R(l);if(h.length<2||h.length>4)return D(l);let p=_(h[0])??P(h[0]);if(p===null)return D(l);let E=(y(h[1])==="List"?R(h[1]):[h[1]]).map(F=>P(F)??_(F));if(E.length===0||E.some(F=>F===null))return D(l);let k=`type ${p} is ${E.map(F=>X(F)).join(" & ")}`,w=h.slice(2);if(w.length>0&&_(w[0])!==null){let F=_(w[0]);w=w.slice(1),k+=/^\s*where\b/.test(F)?` ${F.trim()}`:` where ${F.trim()}`}if(w.length>1)return D(l);if(w.length===0)return t.text(k);let C=Qe(w[0]);if(C===null)return D(l);let $=[];for(let[F,Y]of Object.entries(C)){if(y(Y)!=="Function")return D(l);let ne=F.startsWith("__get__"),Ee=F.startsWith("__set__"),it=ne||Ee?F.slice(7):F,Ye=st(ne?"get":Ee?"set":"function",it,Y);if(Ye===null)return D(l);$.push(Ye)}return $.length===0?t.line(k," {}"):t.stack(t.text(`${k} {`),t.indent(t.stack(...$)),t.text("}"))},DeclareSumType:l=>{let h=R(l);if(h.length<2)return D(l);let p=P(h[0])??_(h[0]);if(p===null)return D(l);let g=h.slice(1),E=null;if(y(g[0])!=="Tuple"){let w=Qe(g[0]);if(g=g.slice(1),w===null)return D(l);let C=Object.keys(w);if(C.length!==1||C[0]!=="typeParams"||(E=_(w.typeParams)??P(w.typeParams),E===null||E.length===0))return D(l)}if(g.length===0)return D(l);let k=[];for(let w of g){if(y(w)!=="Tuple"||G(w)!==2)return D(l);let C=_(m(w,1))??P(m(w,1)),$=_(m(w,2))??P(m(w,2));if(C===null||$===null)return D(l);if($==="nothing")k.push(C);else{let F=Ii($);k.push(`${C}(${F??$})`)}}return t.line("type ",p,E===null?"":`<${E}>`," = ",k.join(" | "))},Assign:l=>{let h=m(l,1),p=m(l,2);if(h!==null&&p!==null&&y(p)==="Function"){let g=R(p).slice(1),E=m(p,1),k=g.some(C=>y(C)==="Typed"),w=y(E)==="Typed";if((k||w)&&H(g))return Ie(h,p)}return je(l)??D(l)},DefineFunction:l=>{let h=m(l,1),p=m(l,2),g=G(l)===3?rt(m(l,3)):null;if((G(l)===2||g!==null)&&h!==null&&P(h)!==null&&p!==null&&y(p)==="Function"&&H(R(p).slice(1))){let E=Ie(h,p,g??{});return g?.description!==void 0?t.stack(...g.description.split(`
|
|
24
|
-
`).map(k=>t.text(`/// ${k}`)),E):E}return D(l)},Match:l=>{let h=jn(l);if(h!==null)return h;let p=m(l,1),g=R(l).slice(1),E=t.line("match ",n(p)," {");return g.length===0?t.line("match ",n(p)," {}"):t.stack(E,t.indent(t.stack(...g.map(j))),t.text("}"))},MatchCase:l=>j(l),Pin:l=>v(l),Alternatives:l=>v(l)};function j(l){let h=R(l),p=v(h[0]??"Nothing"),g=h.length>=3,E=g?h[1]:null,k=g?h[2]:h[1],w=[p];return E!=null&&w.push(" if ",n(E)),w.push(e?.fancySymbols?" \u21D2 ":" => ",n(k??"Nothing")),t.line(...w)}function v(l,h){let p=y(l);if(p==="Pin")return t.line("== ",n(m(l,1)));if(p==="Alternatives"){let k=R(l),w=[];return k.forEach((C,$)=>{$>0&&w.push(" | "),w.push(v(C,h))}),t.line(...w)}if(p==="Range"&&R(l).length===2)return t.line(v(m(l,1)??"Nothing",h),t.infixOperator(".."),v(m(l,2)??"Nothing",h));if(p==="List")return t.fencedList("[",t.separator(","),"]",R(l).map(k=>v(k,h)));if(p==="Tuple")return t.fencedList("(",t.separator(","),")",R(l).map(k=>v(k,h)));if(p==="Dictionary"){let k=R(l);return k.length===0?t.line(t.fence("{"),t.relationalOperator("->"),t.fence("}")):t.fencedList("{",t.separator(","),"}",k.map(w=>t.line(n(m(w,1)),t.relationalOperator("->"),v(m(w,2)??"Nothing",h))))}let g=P(l);if(g!==null){if(g==="_")return t.text("_");if(g==="True")return t.text("true");if(g==="False")return t.text("false");if(g.startsWith("___"))return t.text("..."+g.slice(3));if(g.startsWith("_")){let k=g.slice(1),w=h?.get(k);return t.text(w===void 0?X(k):X(k)+": "+w)}return t.line("== ",t.text(X(g)))}if(c(l))return t.text(Je(l,Ze));if(typeof l=="object"&&l!==null&&"str"in l)return o(l.str);let E=typeof l=="string"&&/^'[\s\S]*'$/.test(l)?_(l):null;return E!==null?o(E):n(T(l))}function T(l){let h=P(l);if(h!==null)return h!=="_"&&!h.startsWith("___")&&h.startsWith("_")?{sym:h.slice(1)}:l;let p=y(l);return p?{fn:[p,...R(l).map(T)]}:l}let B=l=>{if(l===null)return null;let h=_(l);return h!==null?h:P(l)},O=l=>{let h={typeParams:null,argTypes:[],decomposed:!1},p=m(l,1);if(y(p)!=="Typed")return{bodyExpr:p,retType:null,specifier:null,...h};let g=m(p,1),E=B(m(p,2));if(E!==null&&!ot(E))try{let k=ke(E,wn);if(typeof k!="string"&&k.kind==="signature"){let w=vt(k),C=k.typeParams??[],$=k.result;return{bodyExpr:g,retType:$==="unknown"||$==="any"?null:Kn($),specifier:w!==void 0?Vn(w):null,typeParams:C.length>0?C.map(Y=>Y.bound!==void 0?`${Y.name}: ${ce(Y.bound)}`:Y.name).join(", "):null,argTypes:C.length>0?(k.args??[]).map(Y=>Y.type):[],decomposed:!0}}}catch{}return{bodyExpr:g,retType:E,specifier:null,...h}},A={oo:"Infinity","+oo":"Infinity","-oo":"-Infinity",Infinity:"Infinity","+Infinity":"Infinity","-Infinity":"-Infinity",NaN:"NaN",nan:"NaN"},I=l=>/^-?[0-9.]/.test(l)||l.startsWith('"')||l==="true"||l==="false"||l in A,V=l=>{let h=[];for(let p of R(l)){if(y(p)==="Tuple"){let E=V(p);if(E===null)return null;h.push(E);continue}let g=P(p);if(g===null)return null;h.push(X(g))}return`(${h.join(", ")})`},U=l=>y(l)==="Spread"&&G(l)===1&&P(m(l,1))!==null,H=l=>l.every((h,p)=>y(h)==="Spread"?U(h)&&p===l.length-1:y(h)!=="Tuple"||V(h)!==null),z=(l,h,p)=>{if(y(l)==="Tuple")return t.text(V(l)??"");if(U(l))return t.text(`...${X(P(m(l,1)))}`);let g=y(l)==="Typed",E=g?P(m(l,1)):P(l),k=(g?B(m(l,2)):null)??(h!==void 0&&h!=="unknown"?ce(h):null);if(E!==null&&pe(E)&&k!==null&&I(k)){if(k.startsWith('"')&&k.endsWith('"')){let $=k.slice(1,-1).replace(/\\(["\\])/g,"$1");return t.text(`"${xt($)}"`)}return t.text(A[k]??k)}let w=E!==null?X(E):"",C=E!==null&&p!==void 0&&p.has(E)?"bind ":"";return t.text(k!==null?`${C}${w}: ${k}`:`${C}${w}`)},q=(l,h=[],p)=>t.fencedList("(",t.separator(","),")",l.map((g,E)=>z(g,h[E],p))),Q=l=>{let h=R(l).slice(1),p=m(l,1),g=h.some(Y=>y(Y)==="Typed"),E=y(p)==="Typed";if(!H(h))return D(l);let k=h.some(Y=>y(Y)==="Tuple"),w=h.some(Y=>y(Y)==="Spread");if(!g&&!E&&!k&&!w)return D(l);let{bodyExpr:C,decomposed:$}=O(l);if($)return D(l);let F=e?.fancySymbols?"\u21D2":"=>";return t.line(q(h),` ${F} `,n(C))},st=(l,h,p)=>i(0,()=>De(l,h,p)),De=(l,h,p)=>{let g=R(p).slice(1);if(!H(g))return null;let{bodyExpr:E,retType:k,specifier:w,argTypes:C}=O(p),$=w!==null?` ${w}`:"",F=k!==null?` -> ${k}`:"";return t.line(`${l} ${X(h)}`,q(g,C),`${$}${F} `,t.fencedList("{",t.separator(";"),"}",y(E)==="Block"?te(E,n):[n(E)]))},Ie=(l,h,p={})=>i(0,()=>kt(l,h,p)),kt=(l,h,p)=>{let g=P(l),E=g!==null?X(g):"",k=R(h).slice(1),{bodyExpr:w,retType:C,specifier:$,typeParams:F,argTypes:Y}=O(h),ne=[...$!==null?[$]:[],...p.algebraic??[]],Ee=ne.length>0?ne.join(" "):null,it=Ee!==null?` ${Ee}`:"",Ye=C!==null?` -> ${C}`:"",Kt=p.bind!==void 0?new Set(p.bind):void 0,Xt=p.hold?"hold ":"",Yn=F!==null?`<${F}>`:"";if(y(w)==="Block")return t.line(`${Xt}function ${E}${Yn}`,q(k,Y,Kt),`${it}${Ye} `,t.fencedList("{",t.separator(";"),"}",te(w,n)));if(F!==null)return t.line(`${Xt}function ${E}${Yn}`,q(k,Y,Kt),`${it}${Ye} `,t.fencedList("{",t.separator(";"),"}",[n(w)]));let jr=C!==null?Ye:Ee!==null?" -> unknown":"";return t.line(`${Xt}${E}`,q(k,void 0,Kt),`${it}${jr} = `,n(w))};function rt(l){if(l===null)return null;let h=Qe(l);if(h===null)return null;let p={},g=E=>(P(E)??_(E))==="True";for(let E of Object.keys(h)){let k=h[E];if(k!=null)switch(E){case"hold":if(!g(k))return null;p.hold=!0;break;case"commutative":case"associative":case"idempotent":case"involution":if(!g(k))return null;(p.algebraic??=[]).push(E);break;case"bind":{let w=y(k)==="List"?R(k):Array.isArray(k)?k:[k],C=[];for(let $ of w){let F=_($)??P($);if(F===null)return null;C.push(F)}p.bind=C;break}case"description":{let w=_(k);if(w===null)return null;p.description=w;break}default:return null}}return p}function St(l){return W[y(l)]?.(l)??null}function D(l){let h=y(l);return h?t.line(X(h),t.fencedList("(",t.separator(","),")",te(l,n))):t.line("Apply(",n(h),t.separator(","),t.fencedList("[",t.separator(","),"]",te(l,n)),")")}function Ce(l,h){let p=Mt(h);return p.length===0?t.text(l+"{}"):t.choice(t.line(l,ve(h)),t.stack(t.text(l+"{"),t.indent(t.stack(...p)),t.text("}")))}function ve(l){let h=Mt(l);if(h.length===0)return t.text("{}");let p=[];return h.forEach((g,E)=>{E>0&&p.push(t.separator(";")),p.push(g)}),t.line(t.fence("{"),...p,t.fence("}"))}function oe(l,h){let p=u[y(l)];return p&&p.precedence<h?t.line("(",n(l),")"):n(l)}let ae=l=>l!==null&&y(l)==="Block";function Fe(l){let h=[],p=l;for(;;){let g;if(y(p)==="If"){let k=G(p);if(k!==2&&k!==3)return null;let w=m(p,1),C=m(p,2);if(g=k===3?m(p,3):null,w===null||C===null||!ae(C))return null;h.push({head:()=>oe(w,le+1),body:C})}else{let k=Nr(p);if(k===null)return null;let{pattern:w,typed:C,subject:$,body:F}=k;h.push({head:()=>t.line("let ",v(w,C)," = ",oe($,le+1)),body:F}),g=k.fallback}if(g===null)return{clauses:h,elseBody:null};if(ae(g))return{clauses:h,elseBody:g};let E=y(g);if(E!=="If"&&E!=="Match")return null;p=g}}function $e(l){if(y(l)!=="Match"||G(l)!==3)return null;let h=m(l,1),p=m(l,2),g=m(l,3);if(h===null||p===null||g===null||y(p)!=="MatchCase")return null;let E=G(p);if(E!==2&&E!==3)return null;let k=m(p,1),w=E===3?m(p,2):null,C=m(p,E);if(k===null||C===null||!ae(C))return null;let $=Lr(k,w);if($===null||y(g)!=="MatchCase"||G(g)!==2||P(m(g,1))!=="_")return null;let F=m(g,2);return F===null?null:{subject:h,pattern:k,typed:$,body:C,fallbackBody:F}}function Nr(l){let h=$e(l);if(h===null)return null;let{subject:p,pattern:g,typed:E,body:k,fallbackBody:w}=h,C;if(P(w)==="Missing")C=null;else if(ae(w)||y(w)==="If"||y(w)==="Match")C=w;else return null;return{subject:p,pattern:g,typed:E,body:k,fallback:C}}function _r(l){let h=$e(l);if(h===null)return null;let{subject:p,pattern:g,typed:E,body:k,fallbackBody:w}=h;return y(w)!=="Break"||G(w)!==0?null:{subject:p,pattern:g,typed:E,body:k}}function Lr(l,h){let p=new Map;if(h===null)return p;let g=y(h)==="And"?R(h):[h];for(let E of g){if(y(E)!=="MatchesType"||G(E)!==2)return null;let k=P(m(E,1)),w=m(E,2);if(k===null||y(w)!=="TypeFrom"||G(w)!==1)return null;let C=_(m(w,1));if(C===null||p.has(k)||!Dr(C)||Ht(l,k)!==1)return null;p.set(k,C)}return p}function Dr(l){if(/[\r\n\u2028\u2029]/.test(l))return!1;try{return ke(l,wn),!0}catch{return!1}}function Ht(l,h){if(P(l)==="_"+h)return 1;let p=y(l);return p==="List"||p==="Tuple"?R(l).reduce((g,E)=>g+Ht(E,h),0):p==="Dictionary"?R(l).reduce((g,E)=>g+Ht(m(E,2)??"Nothing",h),0):0}let Mt=l=>te(l,n)??[];function jn(l){let h=Fe(l);if(h===null)return null;let{clauses:p,elseBody:g}=h,E=[];p.forEach(({head:$,body:F},Y)=>{E.push(Y===0?"if ":" else if "),E.push($()," ",ve(F))}),g!==null&&E.push(" else ",ve(g));let k=t.line(...E),w=[],C=$=>{let F=Mt($);F.length>0&&w.push(t.indent(t.stack(...F)))};return p.forEach(({head:$,body:F},Y)=>{w.push(t.line(Y===0?"if ":"} else if ",$()," {")),C(F)}),g!==null&&(w.push(t.text("} else {")),C(g)),w.push(t.text("}")),t.choice(k,t.stack(...w))}function Ir(l){let h=jn(l);if(h!==null)return h;if(G(l)!==3)return null;let p=m(l,1),g=m(l,2),E=m(l,3);return p===null||g===null||E===null||ae(g)||ae(E)?null:t.line(oe(g,le+1)," if ",oe(p,le+1)," else ",oe(E,le))}function qt(l,h){let p=Mt(h);return p.length===0?t.line(l," {}"):t.choice(t.line(l," ",ve(h)),t.stack(t.line(l," {"),t.indent(t.stack(...p)),t.text("}")))}function Fr(l){if(!ae(l)||G(l)!==2)return null;let h=m(l,1),p=m(l,2);if(h===null||p===null||!ae(p)||y(h)!=="If"||G(h)!==2)return null;let g=m(h,1),E=m(h,2);if(y(g)!=="Not"||G(g)!==1||y(E)!=="Break"||G(E)!==0)return null;let k=m(g,1);return k===null?null:{cond:k,body:p}}function $r(l){let h=g=>oe(g,le+1),p=R(l);if(p.length===2){let[g,E]=p;if(!ae(g)||y(E)!=="Element"||G(E)!==2)return null;let k=m(E,1),w=m(E,2);if(k===null||w===null)return null;let C;if(y(k)==="Tuple")C=V(k);else{let F=P(k);C=F===null?null:X(F)}if(C===null)return null;let $=t.line("for ",C," in ",h(w));return i(s+1,()=>qt($,g))}if(p.length===1){let g=Fr(p[0]);if(g!==null){let k=t.line("while ",h(g.cond));return i(s+1,()=>qt(k,g.body))}let E=_r(p[0]);if(E!==null){let{pattern:k,typed:w,subject:C,body:$}=E,F=t.line("while let ",v(k,w)," = ",h(C));return i(s+1,()=>qt(F,$))}}return null}function je(l){let h=y(l);if(!h)return null;let p=u[h];if(!p)return null;if(h==="MapsTo"&&s!==0)return i(0,()=>je(l));let g=e?.fancySymbols?p.fancySymbol??p.symbol:p.symbol;if(p.unary){if(G(l)!==1)return null;let k=m(l,1),w=y(k),C=u[w];return C&&C.precedence<p.precedence?t.line(g,"(",n(k),")"):t.line(g,n(k))}if(p.postfix){if(G(l)!==1)return null;let k=m(l,1),w=y(k),C=u[w];return C&&C.precedence<=p.precedence||f(k)||J(k)!==null?t.line("(",n(k),")",g):t.line(n(k),g)}let E=R(l).map((k,w)=>S(k,p,h,w===0?"left":"right")?t.line("(",n(k),")"):n(k));return E.length===0?null:t.list(p.relational?t.relationalOperator(g):t.infixOperator(g),E)}return y(r)==="Block"&&G(r)>=2?t.stack(...te(r,n)).serialize(0):n(r).serialize(0)}function er(r){return typeof r=="boolean"?r?"True":"False":r}function Ii(r){let e="tuple<";if(!r.startsWith(e)||!r.endsWith(">"))return null;let t=0;for(let n=e.length;n<r.length;n++){let s=r[n];if(s==="-"&&r[n+1]===">"){n+=1;continue}if(s==="<"||s==="("||s==="[")t+=1;else if(s===">"||s===")"||s==="]"){if(t===0)return s===">"&&n===r.length-1?r.slice(e.length,n):null;t-=1}}return null}function Qe(r){if(r===null)return null;let e=Object.create(null);if(typeof r=="object"&&!Array.isArray(r)&&"dict"in r&&typeof r.dict=="object"&&r.dict!==null){for(let[t,n]of Object.entries(r.dict))e[t]=er(n);return e}if(y(r)!=="Dictionary")return null;for(let t of R(r)){if(y(t)!=="KeyValuePair")return null;let n=_(m(t,1))??P(m(t,1));if(n===null)return null;e[n]=m(t,2)??"Nothing"}return e}function Fi(r){return r.startsWith("-")?r.slice(1):r.startsWith("+")?"-"+r.slice(1):"-"+r}function $i(r,e){return!(!/^\d[\d_]*(\.\d[\d_]*)?$/.test(r)||X(e)!==e||!/^[a-zA-Z][a-zA-Z0-9_]*$/.test(e)||/^[eE]/.test(e)||r==="0"&&/^[bBxX]/.test(e))}function Qs(r){return Rt.has(r)?Rt.get(r):cn(r)?r<65536?`\\u${("0000"+r.toString(16)).slice(-4)}`:`\\u{${("000000000"+r.toString(16)).slice(-8)}}`:String.fromCodePoint(r)}function xt(r){let e="",t=en(r);if(typeof t=="string")for(let n of t)e+=Qs(n.codePointAt(0));else for(let n of t)n.length===1?e+=Qs(n.codePointAt(0)):e+=n;return e}function X(r){if(Me.has(r))return`\`${r}\``;if(r==="let")return`\`${r}\``;if(/^[a-zA-Z][a-zA-Z\d_]*$/.test(r))return r;let e=r.codePointAt(0);if(ie.has(e))return`\`${xt(r)}\``;let t=!1,n=en(r),s=0;for(;!t&&s<n.length;){let i=n[s].codePointAt(0);t=Rt.has(i)||cn(i)||Ve(i),s+=1}return t?`\`${xt(r)}\``:r}var ji=new Set(["Alternatives","Annotated","At","Block","Colon","Comprehension","Condition","Declare","DeclareConformance","DeclareProtocol","DeclareSumType","DeclareType","DefineFunction","Delimiter","Hold","HoldValues","HorizontalSpacing","IndexedSequence","InvisibleOperator","Latex","LatexString","Loop","MatchCase","MatchesType","MemberCall","NamedArgument","OverParen","Pair","PreDecrement","PreIncrement","ReleaseHold","Rule","Sequence","Single","Spread","Square","Subscript","Text","Triple","Typed","Unevaluated","Which","Wildcard","WildcardOptionalSequence","WildcardSequence"]),Yi=new Set(["Dictionary","List","Set","String","Tuple"]),Wi=new Set(["Approx","ApproxEqual","ApproxNotEqual","NotApprox","NotApproxEqual","NotApproxNotEqual","NotGreater","NotGreaterNotEqual","NotLess","NotLessNotEqual","NotPrecedes","NotSubset","NotSucceeds","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","PlusMinus","Precedes","Succeeds","Tilde","TildeEqual","TildeFullEqual"]),Vi=new Set(["BuiltinFunction","ContinuationPlaceholder","ErrorCode","Object","Pin","Predicate","ProtocolMember","ProtocolProperty","RuntimeError","Signature","Subtype"]),Gi=new Set(["True","False","NaN"]),zi=new Set(qe.map(r=>r.name));function Ui(r){let e=/^([A-Z]+)(.*)$/s.exec(r);if(e===null)return;let[,t,n]=e;return t.length===1?t.toLowerCase()+n:/^[a-z]/.test(n)?t.slice(0,-1).toLowerCase()+t.slice(-1)+n:t.toLowerCase()+n}function $t(r){if(r.length<=1)return;let e=Ui(r);if(e!==void 0&&!zi.has(r)&&!Me.has(e)&&!(ji.has(r)||Yi.has(r)||Wi.has(r)||Vi.has(r)||Gi.has(r)))return e}var An;function tr(){if(An!==void 0)return An;let r=new Map;for(let e of xs){let t=e.definitions;if(t===void 0)continue;let n=Array.isArray(t)?t:[t];for(let s of n)for(let i of Object.keys(s)){let o=$t(i);o!==void 0&&(!r.has(o)||r.get(o),`${o}${r.get(o)}${i}`,r.set(o,i))}}return An=r,r}function jt(r){return tr().get(r)}var nr={definition:0,write:1,read:2};function sr(r,e,t){let n=[],s=new Map,i={span:[0,e.length],bindings:new Map,parent:void 0};function o(v){return typeof v=="object"&&v!==null&&!Array.isArray(v)?v.sourceOffsets:void 0}function a(v,T){if(T[0]<0||T[1]>e.length||T[0]>=T[1])return!1;let B=e.slice(T[0],T[1]);if(B===v||B==="`"+v+"`")return!0;if(B.length>v.length+8)return!1;let O=Nt(B).filter(A=>A.type!=="EOF");return O.length===1&&O[0].start===0&&O[0].end===B.length&&(O[0].type==="SYMBOL"||O[0].type==="VERBATIM_SYMBOL")&&(O[0].value??O[0].text)===v}function u(v,T){return{span:v??T.span,bindings:new Map,parent:T}}function c(v,T,B,O,A){let I=v.bindings.get(T);if(I!==void 0)return I;let V={name:T,kind:B,occurrences:[],...O===void 0?{}:{declaration:O},scope:v.span,visibleFrom:A};return n.push(V),v.bindings.set(T,V),V}function f(v,T,B,O){for(let I=B;I!==void 0;I=I.parent){let V=I.bindings.get(v);if(V!==void 0&&T[0]>=V.visibleFrom){V.occurrences.push({start:T[0],end:T[1],role:O});return}}let A=s.get(v);A===void 0&&(A={name:v,kind:"free",occurrences:[],scope:i.span,visibleFrom:0},s.set(v,A),n.push(A)),A.occurrences.push({start:T[0],end:T[1],role:O})}function d(v){let T=v===null?null:P(v);if(T===null||T==="_")return;let B=o(v);if(!(B===void 0||!a(T,B)))return{name:T,span:B}}function x(v,T,B,O,A){if(v===null)return;let I=y(v);if(I===""){let V=d(v);if(V===void 0)return;c(T,V.name,B,O,A).occurrences.push({start:V.span[0],end:V.span[1],role:"definition"});return}if(I==="Typed"){x(m(v,1),T,B,O,A);return}if(I==="Tuple"){for(let V of R(v))x(V,T,B,O,A);return}J(v,T)}function S(v,T){if(v===null)return;let B=y(v);if(B!==""){if(B==="Typed"){S(m(v,1),T);return}for(let I of R(v))S(I,T);return}let O=P(v);if(O===null||/^_+$/.test(O))return;let A=o(v);if(A!==void 0){if(O.startsWith("___")){let I=O.slice(3),V=[A[0]+3,A[1]];e.slice(A[0],A[0]+3)==="..."&&a(I,V)&&c(T,I,"pattern",A,T.span[0]).occurrences.push({start:V[0],end:V[1],role:"definition"});return}if(O.startsWith("_")&&a(O.slice(1),A)){c(T,O.slice(1),"pattern",A,T.span[0]).occurrences.push({start:A[0],end:A[1],role:"definition"});return}a(O,A)&&f(O,A,T,"read")}}function M(v,T,B){let O=d(m(v,1));if(O===void 0)return;let A=o(v)??O.span,I=c(T,O.name,"function",A,T.span[0]);I.declaration!==void 0&&(I.declaration=[Math.min(I.declaration[0],A[0]),Math.max(I.declaration[1],A[1])]),B&&I.occurrences.push({start:O.span[0],end:O.span[1],role:"definition"})}function b(v,T){for(let B of v)B!==null&&y(B)==="DefineFunction"&&M(B,T,!1)}function N(v,T){let B=u(o(v),T),O=[...R(v)];for(let A=1;A<O.length;A++)x(O[A],B,"parameter",void 0,B.span[0]);J(O[0]??null,B)}function J(v,T){if(v===null)return;let B=y(v);if(B===""){let O=d(v);O!==void 0&&f(O.name,O.span,T,"read");return}switch(B){case"Block":{let O=u(o(v),T),A=[...R(v)];b(A,O);for(let I of A)J(I,O);return}case"Declare":{let O=[...R(v)];for(let I=1;I<O.length;I++)J(O[I],T);let A=o(v);x(O[0]??null,T,"variable",A,A?.[1]??T.span[0]);return}case"Assign":{let O=[...R(v)];for(let A=1;A<O.length;A++)J(O[A],T);W(O[0]??null,T,o(v));return}case"DefineFunction":{M(v,T,!0);let O=m(v,2);O!==null&&y(O)==="Function"?N(O,T):J(O,T),J(m(v,3),T);return}case"Function":N(v,T);return;case"Loop":{let O=m(v,2);if(O!==null&&y(O)==="Element"){J(m(O,2),T);let A=u(o(v),T);x(m(O,1),A,"loop",o(O),A.span[0]),J(m(v,1),A);return}for(let A of R(v))J(A,T);return}case"Match":{J(m(v,1),T);let O=[...R(v)];for(let A=1;A<O.length;A++){let I=O[A];if(I!==null&&y(I)==="MatchCase"){let V=u(o(I),T),U=[...R(I)];S(U[0]??null,V);for(let H=1;H<U.length;H++)J(U[H],V)}else J(I,T)}return}case"DeclareType":case"DeclareSumType":case"DeclareProtocol":{let O=d(m(v,1));O!==void 0&&c(T,O.name,"type",o(v)??O.span,T.span[0]).occurrences.push({start:O.span[0],end:O.span[1],role:"definition"});return}case"KeyValuePair":case"NamedArgument":{let O=[...R(v)];for(let A=1;A<O.length;A++)J(O[A],T);return}case"Typed":{J(m(v,1),T);return}default:{typeof B=="string"?L(v,B,T):J(B,T);let O=o(v),A=typeof B=="string"&&t?.binderSites!==void 0&&j(T,B,O?.[0]??T.span[0])===void 0?t.binderSites(v):void 0;if(A!==void 0&&A.length>0){let I=new Map;[...R(v)].forEach((V,U)=>{let H=A.filter(q=>q.operands==="all"||q.operands.includes(U));if(H.length===0){J(V,T);return}let z=u(O,T);for(let q of H){let Q=I.get(q.name);Q===void 0?I.set(q.name,c(z,q.name,"parameter",void 0,z.span[0])):z.bindings.set(q.name,Q)}J(V,z)});return}for(let I of R(v))J(I,T);return}}}function L(v,T,B){if(T===""||T==="_")return;let O=o(v);if(O===void 0)return;let A=[O[0],O[0]+T.length];if(A[1]<=O[1]&&a(T,A)){f(T,A,B,"read");return}let I=[O[0],O[0]+T.length+2];I[1]<=O[1]&&e.slice(I[0],I[1])==="`"+T+"`"&&f(T,I,B,"read")}function W(v,T,B){if(v===null)return;let O=y(v);if(O==="Tuple"){for(let I of R(v))W(I,T,B);return}if(O==="Typed"){W(m(v,1),T,B);return}let A=d(v);if(A!==void 0){j(T,A.name,A.span[0])!==void 0?f(A.name,A.span,T,"write"):x(v,T,"variable",B,B?.[1]??T.span[0]);return}J(v,T)}function j(v,T,B){for(let O=v;O!==void 0;O=O.parent){let A=O.bindings.get(T);if(A!==void 0&&B>=A.visibleFrom)return A}}if(r!==null)if(y(r)==="Block"){let v=[...R(r)];b(v,i);for(let T of v)J(T,i)}else b([r],i),J(r,i);for(let v of n)v.occurrences.sort((T,B)=>T.start-B.start||T.end-B.end||nr[T.role]-nr[B.role]),v.occurrences=v.occurrences.filter((T,B,O)=>B===0||O[B-1].start!==T.start||O[B-1].end!==T.end);return n.sort((v,T)=>(v.occurrences[0]?.start??0)-(T.occurrences[0]?.start??0)),n}function Hi(r,e){let t=r;for(let n of e){if(t===null)return;t=R(t)[n]??null}return t===null?void 0:P(t)??void 0}function rr(r,e){return r===null?!1:P(r)===e?!0:y(r)===""?!1:R(r).some(n=>rr(n,e))}function ir(r,e){if(r===null)return!1;let t=y(r);return t===""?!1:t===e?!0:R(r).some(n=>ir(n,e))}var qi=new Set(["List","Set","Tuple","Pair","Triple"]);function Ki(r,e,t){let n=y(e);if(n==="")return;let s=e.sourceOffsets,o=s!==void 0&&t[s[0]]==="`"||r.lookupDefinition(n)!==void 0?n:jt(n)??n,a=r.lookupDefinition(o);if(a===void 0||!("operator"in a))return;let u=[...R(e)],c=[],f=new Set,d=a.operator.bindingSites;if(d!==void 0){let x;try{x=u.map(S=>r.box(S,{form:"raw"}))}catch{x=void 0}if(x!==void 0){let S=d(x,"pre"),M=Math.min(...S.filter(b=>b.clauseLocal).map(b=>b.path[0]));for(let b of S){let N=Hi(e,b.path);if(N===void 0||f.has(N))continue;f.add(N);let J=b.path[0];c.push({name:N,operands:b.clauseLocal?u.map((L,W)=>W).filter(L=>L<M||L>=J):"all"})}}}return u.forEach((x,S)=>{let M=[],b=P(x);if(b!==null)M.push(b);else if(qi.has(y(x)))for(let N of R(x)){let J=P(N);J!==null&&M.push(J)}for(let N of M)f.has(N)||N==="_"||!u.some((L,W)=>W!==S&&rr(L,N))||u.some(L=>ir(L,N))||(f.add(N),c.push({name:N,operands:"all"}))}),c}function Bn(r,e,t){let n=sr(r,e,{binderSites:u=>Ki(t,u,e)}),s=new Map,i=(u,c)=>`${u}:${c}`;for(let u of n){if(u.kind!=="free")continue;let c=jt(u.name);if(c!==void 0&&t.lookupDefinition(u.name)===void 0)for(let f of u.occurrences)e[f.start]!=="`"&&s.set(i(f.start,u.name),c)}if(s.size===0)return r;let o=u=>u.sourceOffsets,a=u=>{if(u===null||typeof u!="object")return;if(Array.isArray(u)){for(let f of u)a(f);return}let c=o(u);if("sym"in u){let f=c===void 0?void 0:s.get(i(c[0],u.sym));f!==void 0&&(u.sym=f);return}if("fn"in u){let f=u.fn,d=f[0];if(typeof d=="string"){let x=c===void 0?void 0:s.get(i(c[0],d));x!==void 0&&(f[0]=x)}else a(d);for(let x=1;x<f.length;x++)a(f[x]);return}if("dict"in u)for(let f of Object.values(u.dict))a(f)};return a(r),r}function Yt(r){let e=new Map;return or(r,(t,n)=>{e.has(t)||e.set(t,n)}),e}function or(r,e){if(r===null)return;let t=y(r);if(t!==""){if(t==="DefineFunction"||t==="Declare"||t==="Assign"){let n=m(r,1),s=P(n),i=Pn(n),o=Pn(r);if(s!==null&&i!==void 0){let a=t==="DefineFunction"?Zi(r):void 0;e(s,{name:i,header:Xi(r,t,o??i),...a!==void 0?{description:a}:{}})}}for(let n of R(r))or(n,e)}}function Xi(r,e,t){if(e!=="DefineFunction")return t;let n=Pn(m(m(r,2),1));return n===void 0?t:[t[0],n[0]]}function Zi(r){let e=m(r,3);if(e!==null){if(typeof e=="object"&&!Array.isArray(e)&&"dict"in e&&typeof e.dict=="object"&&e.dict!==null){let t=e.dict.description;return typeof t=="string"?t:void 0}if(y(e)==="Dictionary"){for(let t of R(e))if(!(y(t)!=="KeyValuePair"||(P(m(t,1))??_(m(t,1)))!=="description"))return _(m(t,2))??void 0}}}function Pn(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)?r.sourceOffsets:void 0}function Wt(r){let e=[...R(r)],t=e[e.length-1];if(t===void 0||y(t)!=="ErrorTrace")return[];let n=[];for(let s of R(t)){if(y(s)!=="ErrorFrame")continue;let i=_(m(s,1)),o=he(m(s,2));i===null||o===null||n.push({name:i,index:o})}return n}function Cn(r,e){let t=y(r);if(t==="")return;let n=0;for(let s of R(r)){if(n+=1,s===e)return{name:t,index:n};let i=Cn(s,e);if(i!==void 0)return i}}function Jn(r,e,t,n,s="declaration"){for(let{name:i,index:o}of r){let a=[];if(cr(e,i,a),a.length!==1)continue;let u=Qi([...R(a[0])],o-1,i,s,n),c=ar(u)??ar(a[0]);if(c!==void 0)return{range:c,call:a[0]}}return{range:t}}function Qi(r,e,t,n,s){if(n==="written"||!r.some(a=>y(a)==="NamedArgument"))return r[e]??null;let i=s?.(t);if(i===void 0)return null;let o=0;for(let a of r){if(y(a)!=="NamedArgument"){if(o===e)return a;o+=1;continue}let u=_(m(a,1));if(u!==null&&i.indexOf(u)===e)return a}return null}function lr(r,e,t,n,s="declaration"){return Jn(r,e,t,n,s).range}function cr(r,e,t){if(!(r===null||t.length>1)&&y(r)!==""){y(r)===e&&t.push(r);for(let n of R(r))cr(n,e,t)}}function ar(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)?r.sourceOffsets:void 0}var eo=new Set(["missing","unexpected-argument","incompatible-type"]);function yt(r,e,t){if(!eo.has(Nn(e)))return[];let n=no(e)??t?.enclosingFrame;if(n===void 0)return[];let s=[],i=qn(so(r,n.name));if(i!==void 0&&i.length>1)s.push({message:`\`${n.name}\` has ${i.length} overloads: ${i.map(u=>`\`${fr(u)}\``).join(", ")}`});else if(i!==void 0&&i.length===1){let u=ro(e,i[0],n.index);u!==void 0&&s.push({message:`\`${n.name}\` has signature \`${fr(i[0])}\`${u}`})}let o=t?.definitionSites?.get(n.name);o!==void 0&&!oo(o.name,t?.primaryRange)&&s.push({message:`\`${n.name}\` is defined here`,range:o.name});let a=to(r,e,n,t?.call,t?.boxedError);return a!==void 0&&s.push(a),s}function to(r,e,t,n,s){if(Nn(e)!=="incompatible-type")return;let i=m(e,1);if(y(i)!=="ErrorCode")return;let o=_(m(i,3));if(o===null)return;let a=s?.ops?.[1];if(a!==void 0&&a.operator!=="ErrorTrace"){let x=a.symbol;return typeof x=="string"?ur(x,a.valueDefinition?._typeProvenance,o):void 0}if(n===void 0)return;let u=[...R(n)][t.index-1]??null,c=u===null?null:P(u);if(c===null)return;let f=r.lookupDefinition(c),d=f!==void 0&&"value"in f?f.value._typeProvenance:void 0;return ur(c,d,o)}function ur(r,e,t){if(e!==void 0)for(let n=e.length-1;n>=0;n--){let s=e[n];if(s.kind==="inferred"&&s.cause!==void 0&&s.type.toString()===t)return{message:`\`${r}\` was inferred to have type \`${t}\` from its use in \`${s.cause.toString()}\``}}}function Nn(r){let e=m(r,1);return e===null?"":y(e)==="ErrorCode"?_(m(e,1))??"":_(e)??""}function no(r){let e=Wt(r)[0];if(e!==void 0)return e.name==="Block"||e.name==="Function"?void 0:e}function so(r,e){let t;try{t=r.lookupDefinition(e)}catch{return}if(t!==void 0)return"operator"in t?t.operator.signature.type:t.value.type.type}function ro(r,e,t){let n=e.args?.length??0,s=e.optArgs?.length??0,i=e.args?.[t-1]??e.optArgs?.[t-1-n]??void 0,o=i===void 0?"":` (\`${hr(i)}\`)`;switch(Nn(r)){case"missing":return i===void 0?void 0:`; argument ${t}${o} was not supplied`;case"unexpected-argument":return e.variadicArg!==void 0?void 0:`; it takes ${io(n,s)}, so argument ${t} is extra`;default:return i===void 0?void 0:`; argument ${t} is \`${hr(i)}\``}}function io(r,e){let t=n=>`${n} argument${n===1?"":"s"}`;return e>0?`${r} to ${t(r+e)}`:t(r)}function fr(r){return ce({...r,args:r.args?.map(Vt),optArgs:r.optArgs?.map(Vt),variadicArg:r.variadicArg===void 0?void 0:Vt(r.variadicArg)})}function Vt(r){return r.name!==void 0&&pe(r.name)?{type:r.type}:r}function hr(r){let e=Vt(r);return e.name===void 0?ce(e.type):`${e.name}: ${ce(e.type)}`}function oo(r,e){return e!==void 0&&r[0]<e[1]&&e[0]<r[1]}function pr(r,e,t,n,s){be(r,e,s,n,t)}function be(r,e,t,n,s){let i=y(e);if(i!=="")switch(i){case"Block":{let o=new Map(t);for(let a of R(e))be(r,a,t,n,s);Gt(t,o);return}case"Declare":{let o=R(e);for(let c of o.slice(1))be(r,c,t,n,s);if(o[0]===void 0)return;let a=P(o[0]);if(a===null){for(let c of zt(o[0]))t.delete(c);return}let u=_(o[1]);u!==null?t.set(a,u):t.delete(a);return}case"Function":{let[o,...a]=R(e),u=new Map(t);for(let c of a){if(y(c)==="Typed"){let f=P(m(c,1)),d=_(m(c,2));if(f!==null&&d!==null){t.set(f,d);continue}}for(let f of zt(c))t.delete(f)}o!==void 0&&be(r,o,t,n,s),Gt(t,u);return}case"Loop":{let[o,a]=R(e);if(y(a)==="Element"){let[u,c]=R(a);c!==void 0&&be(r,c,t,n,s);let f=new Map(t);if(u!==void 0)for(let d of zt(u))t.delete(d);o!==void 0&&be(r,o,t,n,s),Gt(t,f);return}for(let u of R(e))be(r,u,t,n,s);return}case"Match":{let[o,...a]=R(e);o!==void 0&&(ao(r,e,o,a,t,n,s),be(r,o,t,n,s));for(let u of a){if(y(u)!=="MatchCase")continue;let[c,...f]=R(u),d=new Map(t),x=dr(c);for(let S of x)t.delete(S);if(f.length===2)for(let S of xr(f[0])){let M=gr(S);M!==void 0&&x.includes(M.name)&&t.set(M.name,M.type)}for(let S of f)be(r,S,t,n,s);Gt(t,d)}return}default:for(let o of R(e))be(r,o,t,n,s)}}function Gt(r,e){r.clear();for(let[t,n]of e)r.set(t,n)}function zt(r){let e=P(r);return e!==null?[e]:R(r).flatMap(zt)}function dr(r){let e=P(r);if(e!==null){if(!e.startsWith("_"))return[];let t=e.replace(/^_+/,"");return t===""?[]:[t]}return y(r)==="Pin"?[]:R(r).flatMap(dr)}function ao(r,e,t,n,s,i,o){let a=P(t);if(a===null)return;let u=s.get(a);if(u===void 0)return;let c=yr(r,u);if(c===void 0)return;let f=new Set;for(let x of n){if(y(x)!=="MatchCase")continue;let S=R(x),M=S[0],b=S.length===3?S[1]:null;if(M===void 0)continue;let N=mr(r,M,b,c);if(N==="all")return;for(let J of N)f.add(J)}let d=c.alternatives.filter(x=>!f.has(x.name));d.length!==0&&i.push({severity:"warning",message:["match-not-exhaustive",c.label,d.map(ho).join(", ")],range:po(e)??[0,o.length]})}function mr(r,e,t,n){if(t!==null&&P(t)==="True"&&(t=null),t!==null){let a=uo(e,t);if(a===void 0)return[];if(["any","unknown","expression"].includes(a.type.trim()))return"all";let u=yr(r,a.type);return u===void 0?[]:u.alternatives.map(c=>c.name)}let s=P(e);if(s!==null)return Ln(s)?"all":(s==="True"||s==="False")&&n.alternatives.some(a=>a.kind==="boolean"&&a.name===s)?[s]:[];let i=y(e);if(i==="Alternatives"){let a=[];for(let u of R(e)){let c=mr(r,u,null,n);if(c==="all")return"all";a.push(...c)}return a}let o=n.alternatives.find(a=>a.kind==="variant"&&a.name===i);return o===void 0||o.kind!=="variant"?[]:lo(R(e),o.arity)?[o.name]:[]}function lo(r,e){let t=0,n=!1;for(let s of r){let i=P(s);if(i===null)return!1;if(co(i)){if(n)return!1;n=!0}else if(Ln(i))t+=1;else return!1}return n?t<=e:t===e}function Ln(r){return r.startsWith("_")&&!r.startsWith("__")}function co(r){return r.startsWith("___")}function uo(r,e){if(e===null)return;let t=P(r);if(t===null||!Ln(t))return;let n=t.slice(1);if(n==="")return;let s=gr(e);return s!==void 0&&s.name===n?s:void 0}function gr(r){if(y(r)!=="MatchesType")return;let e=P(m(r,1));if(e===null)return;let t=m(r,2);if(y(t)!=="TypeFrom")return;let n=_(m(t,1));return n===null?void 0:{name:e,type:n}}function xr(r){return y(r)!=="And"?[r]:R(r).flatMap(xr)}function yr(r,e){let t;try{t=r.type(e).type}catch{return}let n=br(r,t,0);return n===void 0?void 0:{label:e,alternatives:n}}var fo=8;function br(r,e,t){if(e==="boolean")return[{kind:"boolean",name:"True"},{kind:"boolean",name:"False"}];if(typeof e=="object"){if(e.kind==="reference"){let n=Zt(e);if(n._sumVariants!==void 0){let s=[];for(let i of n._sumVariants){let o=_n(r,i.name);if(o===void 0)return;s.push(o)}return s}if(n._sumOf!==void 0){let s=_n(r,n.name);return s===void 0?void 0:[s]}return n.alias&&n.def!==void 0&&t<fo?br(r,n.def,t+1):void 0}if(e.kind==="union"){let n=[],s=new Set;for(let i of e.types){if(typeof i!="object"||i.kind!=="reference")return;let o=Zt(i);if(o._sumOf===void 0)return;let a=_n(r,o.name);if(a===void 0)return;s.has(a.name)||(s.add(a.name),n.push(a))}return n.length===0?void 0:n}}}function _n(r,e){let t=gs(r,e);return t===void 0?void 0:{kind:"variant",name:e,arity:t.arity}}function ho(r){return r.kind==="boolean"?r.name==="True"?"true":"false":`${r.name}(${Array.from({length:r.arity},()=>"_").join(", ")})`}function po(r){if(typeof r!="object"||r===null||Array.isArray(r))return;let e=r.sourceOffsets;return Array.isArray(e)?[e[0],e[1]]:void 0}function Sr(r){return e=>nn(r,e)}function In(r){return ys(r)?"written":"declaration"}var Er=60,mo=new Set(["variable-redeclaration","protocol-implementation-duplicate","argument-name-unknown","argument-order-invalid","argument-name-duplicate","argument-names-unavailable","argument-optional-skipped","argument-names-required","dot-call-not-a-protocol-function","callback-arity","pipe-stage-arity","no-product-between-points","no-division-by-point","incompatible-type","incompatible-dimensions","invalid-axis","invalid-symbol","missing","unexpected-argument","unexpected-mathjson","unexpected-operator"]);function go(r,e,t,n){let s=y(e),i=null,o=null;s==="DefineFunction"?(i=m(e,1),o=m(e,2)):s==="Declare"&&(i=m(e,1),o=bo(e));let a=P(i);if(a===null||o===null||y(o)!=="Function")return;let u=kr(i)??kr(e);if(u===void 0)return;let c=xo(r,a)??yo(t),f=typeof c=="object"&&(c.kind==="signature"||c.kind==="union"||c.kind==="intersection")?vt(c)??[]:void 0,d={name:a,range:u,effects:f,declared:Eo(r,o)||ko(r,e)},x=n.findIndex(S=>S.name===a);x<0?n.push(d):n[x]={...d,range:n[x].range,declared:n[x].declared||d.declared}}function xo(r,e){let t=r.lookupDefinition(e);if(t===void 0)return;let n="operator"in t?t.operator.signature.type:t.value.type.type;return typeof n=="object"&&(n.kind==="signature"||n.kind==="union"||n.kind==="intersection")?n:void 0}function yo(r){if(!ge(r,"Declare"))return;let e=r.ops[r.ops.length-1],t=e!==void 0&<(e)?e.get("value"):void 0;if(!(t===void 0||t.operator!=="Function"))return t.canonical.type.type}function Mr(r){for(let e of R(r).slice(1))if(y(e)==="Dictionary")return e;return null}function bo(r){let e=Mr(r);if(e===null)return null;for(let t of R(e)){if(y(t)!=="KeyValuePair")continue;let n=m(t,1);if(P(n)==="value"||_(n)==="value")return m(t,2)}return null}function vr(r,e){if(ot(e))return!1;try{let t=ke(e,r._typeResolver);return typeof t=="object"&&t.kind==="signature"&&t.effects!==void 0}catch{return!1}}function Eo(r,e){let t=m(e,1);if(t===null||y(t)!=="Typed")return!1;let n=_(m(t,2));return n!==null&&vr(r,n)}function ko(r,e){if(y(e)!=="Declare")return!1;let t=null;for(let s of R(e).slice(1)){let i=_(s);i!==null&&(t=i)}let n=Mr(e);if(t===null&&n!==null)for(let s of R(n)){if(y(s)!=="KeyValuePair")continue;let i=m(s,1);(P(i)==="type"||_(i)==="type")&&(t=_(m(s,2)))}return t!==null&&vr(r,t)}function kr(r){if(r===null||typeof r!="object"||Array.isArray(r))return;let e=r.sourceOffsets;if(Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number")return[e[0],e[1]]}function So(r){return mo.has(r)||r.startsWith("expected-")}function Tr(r,e,t,n=[],s){let i=r._typeRegistryRollbackPoint(),o=r._protocolRegistryRollbackPoint();r._staticTypeCheckDepth+=1,r.pushScope(void 0,"epsil:static-check");let a=r._staticAssignmentEvidence;r._staticAssignmentEvidence=new Map,r._factSuppressionDepth+=1;try{return r._withBoxingPassWindow(()=>r._withRolledBackInference(()=>vo(r,e,t,n,s?.effects)))}finally{r._staticAssignmentEvidence=a,r.popScope(),r._factSuppressionDepth-=1,r._staticTypeCheckDepth-=1,i(),o()}}function Mo(r,e,t){let n=r._staticAssignmentEvidence;if(n===void 0)return;let s,i;if(ge(e,"Assign"))s=e.ops[0],i=e.ops[1];else if(ge(e,"Declare")){s=e.ops[0];let c=e.ops.slice(1),f=c[c.length-1],d=lt(f)?f:void 0,x=d===void 0?c:c.slice(0,-1),S=x.find(M=>Se(M))??d?.get("type");if(S!==void 0){let M=Se(S)?S.string:fe(S)?S.symbol:null;if(s!==void 0&&fe(s)&&M!==null){try{r.declare(s.symbol,M),t.add(s.symbol)}catch{}let b=x.find(N=>!Se(N))??d?.get("value");if(b!==void 0&&b.operator!=="Function"){let N=b.canonical;if(N.isValid&&!N.type.isUnknown){let J=r.box(s.symbol).valueDefinition;if(J!==void 0&&(n.set(J,N._literalType??N.type.type),J._placeholderSkeleton!==void 0&&t.has(s.symbol))){let L=tn(J._placeholderSkeleton,N.type.type);L!==J.type.type&&J._setElementRefinement(r.type(L))}}}}return}i=x.find(M=>!Se(M))??d?.get("value")}else return;if(s===void 0||i===void 0||i.operator==="Function"||(i=i.canonical,!i.isValid))return;let o=i.type;if(o.isUnknown)return;if(ge(s,"Tuple")){let c=o.type;typeof c=="object"&&c.kind==="tuple"&&c.elements.length===s.nops&&s.ops.every(f=>fe(f))&&s.ops.forEach((f,d)=>{let x=c.elements[d].type;if(x==="unknown"||!fe(f))return;let S=r.box(f.symbol),M=S.valueDefinition;M!==void 0&&(S._infer(()=>cs(r,x),"replace"),n.set(M,x))});return}if(!fe(s))return;let a=r.box(s.symbol),u=a.valueDefinition;if(u!==void 0){if(u._placeholderSkeleton!==void 0&&t.has(s.symbol)){let c=tn(u._placeholderSkeleton,o.type);c!==u.type.type&&u._setElementRefinement(r.type(c))}else a._infer(()=>us(r,i).type,"replace");n.set(u,i._literalType??o.type)}}function vo(r,e,t,n,s){let i=y(e)==="Block"?[...R(e)]:[e],o=Yt(e),a=new Map,u=new Map,c=new Map,f=new Map,d=new Set,x=new Map;for(let S of i){let M=wo(S,t,u);M!==void 0&&n.push(M);let b=Ro(S,t,f);b!==void 0&&n.push(b);let N=No(S),J,L,W=r._epsilDeclarationRoute;r._epsilDeclarationRoute=Fn(S);try{Te(r._deadlineFrame),L=r.box(S),J=L.json}catch(U){if(at(U))throw U;continue}finally{r._epsilDeclarationRoute=W}pr(r,S,t,n,x),M===void 0&&Oo(S,J,t,u),Ao(S,c);let j=Bo(r,S,L,t,c);j!==void 0&&n.push(j),s!==void 0&&M===void 0&&j===void 0&&go(r,S,L,s);let v=Jo(r,L);v===void 0&&Po(r,L,a),v===void 0&&Mo(r,L,d);let T=[];tt(J,T);let B=new Map;{let U=[L];for(;U.length>0;){let H=U.pop();if(H.operator==="Error"){let Q=JSON.stringify(H.json);B.has(Q)||B.set(Q,H)}let z=H.values;if(Array.isArray(z))for(let Q=z.length-1;Q>=0;Q--)U.push(z[Q]);let q=H.ops;if(q!==void 0)for(let Q=q.length-1;Q>=0;Q--)U.push(q[Q])}}if(T.length===0&&v===void 0)continue;let[O,A]=Et(S,t),I=Dn(S);v!==void 0&&n.push({severity:"error",message:["static-type-error",v,I,"incompatible-type"],range:[O,A,O]});let V=new Set;for(let U of T){let H=bt(U);if(!So(H))continue;let z=Ut(U),q=wr(U),Q=N.get(q);if(Q!==void 0&&Q>0){N.set(q,Q-1);continue}if(V.has(q))continue;V.add(q);let st=Cn(J,U),De=Jn(st===void 0?[]:[st],S,[O,A],D=>nn(r,D),In(H)),[Ie,kt]=De.range,rt={severity:"error",message:["static-type-error",z,De.call===void 0?I:Dn(De.call),H],range:[Ie,kt,Ie]},St=yt(r,U,{definitionSites:o,primaryRange:[Ie,kt],enclosingFrame:st,call:De.call,boxedError:B.get(JSON.stringify(U))});if(St.length>0&&(rt.notes=St),H==="incompatible-type"){let Ce=B.get(JSON.stringify(U))?.ops?.[1],ve=m(U,1),oe=ve!==null&&y(ve)==="ErrorCode"?nt([...R(ve)][1]):void 0;if(Ce!==void 0&&fe(Ce)&&oe!==void 0&&oe!==""){let ae=Ce.valueDefinition,Fe=ae===void 0?void 0:r._staticAssignmentEvidence?.get(ae),$e=ke(oe,r._typeResolver);Fe!==void 0&&$e!==void 0&&Zn(Fe,$e)&&!Hn(Fe,$e)&&(rt.notes??=[]).push({message:`the assignment gives \`${Ce.symbol}\` the type \`${ce(Fe)}\`, which only POSSIBLY fits \`${oe}\` \u2014 annotate the declaration (\`let ${Ce.symbol}: ${oe}\`) to state the contract and have each assignment checked against it`})}}n.push(rt)}}return n}function Or(r){switch(y(r)){case"DeclareType":{let e=et(m(r,1));return e===void 0?void 0:{kind:"type",names:[e]}}case"DeclareSumType":{let e=[...R(r)],t=et(e[0]??null);if(t===void 0)return;let n=[t];for(let s of e.slice(1)){if(y(s)!=="Tuple")continue;let i=et(m(s,1));i!==void 0&&n.push(i)}return{kind:"type",names:n}}case"DeclareProtocol":{let e=et(m(r,1));return e===void 0?void 0:{kind:"protocol",names:[e]}}default:return}}function et(r){if(r!==null)return _(r)??P(r)??void 0}function Fn(r){let e=y(r);return e==="DeclareType"||e==="DeclareSumType"||e==="DeclareProtocol"||e==="DeclareConformance"||e==="DefineFunction"}var To=new Set(["invalid-type-declaration","invalid-protocol-declaration","type-redefinition","protocol-redefinition"]);function Oo(r,e,t,n){let s=Or(r);if(s===void 0)return;let i=[];if(tt(e,i),i.some(a=>To.has(bt(a))))return;let o=Et(r,t);for(let a of s.names)n.set(`${s.kind} ${a}`,o)}function wo(r,e,t){let n=Or(r);if(n===void 0)return;let[s,i]=Et(r,e);for(let o of n.names){let a=t.get(`${n.kind} ${o}`);if(a!==void 0)return{severity:"error",message:[n.kind==="type"?"type-redefinition":"protocol-redefinition",o],range:[s,i,s],notes:[{message:`\`${o}\` is first declared here`,range:a}]}}}function Ro(r,e,t){let n=$n(r);if(n.length===0)return;let s=Et(r,e),i=n.find(o=>t.has(o));if(i===void 0){for(let o of n)t.set(o,s);return}return{severity:"error",message:["variable-redeclaration",i],range:[s[0],s[1],s[0]],notes:[{message:`\`${i}\` is first declared here`,range:t.get(i)}]}}function $n(r){if(y(r)!=="Declare")return[];let e=[],t=n=>{if(n===null)return;if(y(n)==="Tuple"){for(let i of R(n))t(i);return}let s=P(n);s!=null&&s!=="_"&&s!=="Nothing"&&e.push(s)};return t(m(r,1)),e}function Ao(r,e){let t=y(r);if(t!=="Assign"&&t!=="Declare"||t==="Declare"&&m(r,2)===null)return;let n=et(m(r,1));n!==void 0&&e.delete(n)}function Bo(r,e,t,n,s){if(y(e)!=="DefineFunction")return;let i=et(m(e,1));if(i===void 0||!ge(t,"DefineFunction"))return;let o=t.ops[1];if(!ge(o,"Function"))return;let a=o.type.type;if(zn(a))return;let u=hs(a),c=Et(e,n),f=s.get(i)??[],d=f.find(x=>ps(x.signature,u));if(d===void 0){fs(r.lookupDefinition(i))||(f.push({signature:u,range:c}),s.set(i,f));return}return{severity:"error",message:["function-redefinition",i],range:[c[0],c[1],c[0]],notes:[{message:`this clause of \`${i}\` is first defined here`,range:d.range}]}}function Po(r,e,t){let n=null,s;if(ge(e,"Assign")){let a=e.ops[0];n=fe(a)?a.symbol:null;let u=n===null?void 0:t.get(n);if(u!==void 0){r.box(n)._infer(()=>u,"narrow");return}let c=e.ops[1];c!==void 0&&c.operator==="Function"&&(s=c.type.type)}else if(ge(e,"Declare")){let a=e.ops[1];if(Se(a)){let u=e.ops[0];n=fe(u)?u.symbol:null;try{s=r.type(a.string).type}catch{return}}}if(n===null||s===void 0||!Co(s)||t.has(n))return;let i=r.lookupDefinition(n);if(i!==void 0&&(!Qn(i)||i.value.isConstant||!i.value.inferredType&&!i.value.type.isUnknown||!i.value.type.isUnknown&&!Xn(i.value.type.type)))return;let o=s;r.box(n)._infer(()=>o,"narrow")&&t.set(n,o)}function Co(r){return typeof r=="string"||r.kind!=="signature"?!1:[...r.args??[],...r.optArgs??[]].some(e=>e.name!==void 0)}function Jo(r,e){if(!ge(e,"Declare"))return;let t=e.ops[1];if(!Se(t))return;let n=e.ops.find(f=>lt(f));if(n===void 0||!lt(n))return;let s=n.get("value");if(s===void 0||n.get("holdUntil")!==void 0)return;let i;try{i=r.type(t.string)}catch{return}if(i.isUnknown||s.type.isUnknown)return;let o=es(s)||Se(s)||fe(s,"True")||fe(s,"False");if(Se(s)&&ms(i.type)&&ds(s.string)||!(o?!s.type.matches(i):i.isDisjointFrom(s.type)))return;let u=`The value "${s.toString()}" of type "${s.type}" is not compatible with the declared type "${i}"`,c=is(s,i);return c===void 0?u:`${u}. ${c}`}function No(r){let e=[];tt(r,e);let t=new Map;for(let n of e){let s=wr(n);t.set(s,(t.get(s)??0)+1)}return t}function wr(r){let e=m(r,1);return Ut(e===null?r:["Error",e])}function tt(r,e){if(y(r)==="Error"){let t=[];for(let n of R(r))tt(n,t);e.push(...t.length>0?t:[r]);return}if(ns(r)){for(let t of Object.values(r.dict))tt(t,e);return}for(let t of R(r))tt(t,e)}function bt(r){let e=m(r,1);return e===null?"error":y(e)==="ErrorCode"?nt(m(e,1)??"Nothing"):nt(e)}function Ut(r){let e=m(r,1),t=m(r,2),n=y(t)==="ErrorTrace"?null:t,s="error",i=[];if(e!==null)if(y(e)==="ErrorCode"){let c=[...R(e)].map(nt);s=c[0]??s,i.push(...c.slice(1))}else s=nt(e);let o=n===null?"":nt(n),a=o===""?"":/^\d+$/.test(o)?`for argument ${o}`:o.length<=40?`at \`${o}\``:`\u2014 ${o}`,u;switch(s){case"expected-function":u=i.length>=2?a===""?`\`${i[0]}\`: expected a function, got \`${i[1]}\``:`expected a function, got \`${i[1]}\``:`expected a function (${i.join(", ")})`;break;case"incompatible-type":u=i.length===2?`expected \`${i[0]}\`, got \`${i[1]}\``:`incompatible type: ${i.join(", ")}`;break;case"missing":u=i.length===0?"a required argument is missing":`a required argument is missing (${i.join(", ")})`;break;case"unexpected-argument":return i.length===0?"unexpected argument":`unexpected argument \`${i.join(", ")}\``;case"callback-arity":return i.length===0?"the callback takes the wrong number of parameters":i.join(" ");case"pipe-stage-arity":return i.length===0?"the pipe stage takes the wrong number of parameters":i.join(" ");case"no-division-by-point":return"a point cannot be a divisor";case"no-product-between-points":{let c=i.slice(1).join(" ");return c===""?"no product is defined between points":`no product is defined between points; ${c}`}case"invalid-symbol":u=i.length===0?"invalid symbol":`invalid symbol \`${i.join(", ")}\``;break;case"protocol-function-not-a-field":{let c=(i[1]??"").split(", ").filter(x=>x!=="").map(x=>`\`${x}\``),f=c.length===1?"protocol":"protocols",d=i[2]==="assign"?" and cannot be assigned":c.length===1?`: call it as \`${i[0]}(x)\` or \`x.${i[0]}()\``:"; more than one applies here, so call it with a qualified name";u=i.length>=2&&c.length>0?`\`${i[0]}\` is a function member of the ${c.join(" and ")} ${f}, not a field${d}`:`a protocol function member is not a field (${i.join(", ")})`;break}case"dot-call-not-a-protocol-function":{let[c,f]=i;u=c===void 0?"only a protocol function can be called with a dot":`\`${c}\` is not a protocol function${f===void 0?"":` on a value of type \`${f}\``}: write \`${c}(x)\` or \`x |> ${c}\``;break}default:{let c=/^[a-z][a-z0-9-]*$/.test(s)?s.replaceAll("-"," "):s;u=i.length===0?c:`${c}: ${i.join(", ")}`}}return a===""?u:`${u} ${a}`}function nt(r){return _(r)??Dn(r)}function Dn(r){let e;try{e=Rn(r).replaceAll(/\s+/g," ").trim()}catch{return""}return e.length>Er?`${e.slice(0,Er-1)}\u2026`:e}function Et(r,e){return(typeof r=="object"&&r!==null&&!Array.isArray(r)?r.sourceOffsets:void 0)??[0,e.length]}function _o(r){let e={};for(let t of r._typeResolver.names){let n=r._typeResolver.resolve(t)?._sumOf;n!==void 0&&(e[t]=n)}return e}var Lo=0;function Do(r,e,t){let n=r._epsilBatchId;r._epsilBatchId=++Lo;try{return Io(r,e,t)}finally{r._epsilBatchId=n}}function Io(r,e,t){let n=[],s;try{let[M,b]=vn(e,t?.url,{parseLatex:t?.parseLatex,allowHostPragmas:t?.allowHostPragmas??!1,typeNames:r._typeResolver.names,protocolNames:Object.keys(r._protocolRegistry),sumVariants:_o(r),deadline:r._deadlineFrame});s=Bn(M,e,r),n.push(...b)}catch(M){if(M instanceof Ge)return n.push(Ar(["error-directive",M.message],[0,e.length])),{value:r.Nothing,diagnostics:n};if(at(M))return{value:r.box(["Error",{str:M instanceof Error?M.message:"Timeout exceeded"},{str:"timeout"}]),diagnostics:n,valueRange:[0,e.length]};throw M}let i=y(s)==="Block"?[...R(s)]:[s],o=Yt(s),a=!1;if(!n.some(M=>M.severity==="error"))try{Tr(r,s,e,n)}catch(M){if(!at(M))throw M;a=!0}if(!a&&!n.some(M=>M.severity==="error")){let M=new Set;for(let b of i)Cr(r,b,M,n,b,e)}let u=r.Nothing,c,f=new Set,d=new Set;for(let M=0;M<i.length;M++){let b=i[M],N;c=Pe(b,e);let J;Br(r,b,f,n,b,e);let L=r._epsilDeclarationRoute;r._epsilDeclarationRoute=Fn(b);try{Te(r._deadlineFrame),J=Fo(b,d),u=J===void 0?r.box(b).evaluate():r.error(["variable-redeclaration",J]);let j=u.errors;j.length>0&&(c=Rr(r,j[0].json,b,c))}catch(j){let v=j instanceof Error?j.message:String(j);N=Uo(j),u=N!==void 0?r.box(["Error",{str:v},{str:N}]):r.box(["Error",{str:v}])}finally{r._epsilDeclarationRoute=L}let W=J!==void 0&&n.some(j=>Array.isArray(j.message)&&j.message[0]==="variable-redeclaration"&&j.message[1]===J);if(M<i.length-1&&!W){let j=u.errors;if(j.length>0){let v=$o(j[0].json),T=Ut(j[0].json),B=Rr(r,j[0].json,b,Pe(b,e)),O=Ar(N!==void 0?["evaluation-canceled",N,j[0].toString()]:["runtime-error",T,v,bt(j[0].json)],B),A=yt(r,j[0].json,{definitionSites:o,primaryRange:B,boxedError:j[0]});A.length>0&&(O.notes=A),n.push(O)}}if(N==="timeout")break;Jr(r,u.json,f,n,b,e)}let x=Wo(i,e);for(let M of Object.values(r._protocolRegistry))for(let b of M.conformances)b.pending&&n.push({severity:"warning",message:["protocol-implementation-pending",b.targetKey,M.name,b._pendingReason??""],range:Vo(x,b.targetKey,M.name)??[0,e.length]});let S=u.errors.length>0?yt(r,u.errors[0].json,{definitionSites:o,primaryRange:c,boxedError:u.errors[0]}):[];return{value:u,diagnostics:n,...c===void 0?{}:{valueRange:c},...S.length===0?{}:{valueNotes:S}}}function Fo(r,e){let t=$n(r),n=t.find(s=>e.has(s));if(n!==void 0)return n;for(let s of t)e.add(s)}function $o(r){let e=[...R(r)],t=e[e.length-1];if(t===void 0||y(t)!=="ErrorTrace")return"";let n=[];for(let s of R(t)){if(y(s)==="ErrorBroadcast"){let a=_(m(s,1)),u=he(m(s,2)),c=he(m(s,3));if(a===null||u===null||c===null)continue;n.push(`while applying ${a} element-wise over ${c} element${c===1?"":"s"} (element ${u})`);continue}if(y(s)!=="ErrorFrame")continue;let i=_(m(s,1)),o=he(m(s,2));i===null||o===null||i==="Block"||i==="Function"||n.push(`in ${i} argument ${o}`)}return n.join(", ")}function Rr(r,e,t,n){return lr(Wt(e),t,n,Sr(r),In(bt(e)))}function Br(r,e,t,n,s,i,o=new Set){let a=y(e);if(a==="")return;if(!t.has(a)&&!o.has(a)&&r.operatorInfo(a)===void 0&&!jo(r,a)){let c=Go(r,a);c!==void 0&&(t.add(a),n.push({severity:"warning",message:["protocol-property-not-callable",a,c],range:Pr(e)??Pe(s,i)}))}let u=a==="Function"?Yo(e,o):o;for(let c of R(e))Br(r,c,t,n,s,i,u)}function jo(r,e){let t=r.lookupDefinition(e);return t===void 0?!1:"value"in t?t.value.type.matches("function"):!0}function Yo(r,e){let t=new Set(e),n=[...R(r)].slice(1),s=i=>{let o=P(i);o!=null&&t.add(o);for(let a of R(i))s(a)};for(let i of n)s(i);return t}function Wo(r,e){let t=[];for(let n of r){if(y(n)!=="DeclareConformance")continue;let s=_(m(n,1))??P(m(n,1));if(s==null)continue;let i=_(m(n,3)),o=i===null||i===""?void 0:i,a=Pe(n,e);for(let u of R(m(n,2)??"Nothing")){let c=P(u)??_(u);c!=null&&t.push({target:s,protocol:c,clause:o,range:a})}}return t}function Vo(r,e,t){let n=r.filter(s=>s.protocol===t&&(s.clause===void 0?e===s.target:e.startsWith(`${s.target} where `)));return n.length===1?n[0].range:void 0}function Go(r,e){for(let t of Object.values(r._protocolRegistry)){let n=t.members[e]?.kind;if(n==="readonly"||n==="readwrite")return t.name}}function Pr(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)?r.sourceOffsets:void 0}function Pe(r,e){return Pr(r)??[0,e.length]}var zo=new Set(["println","printf","puts","echo"]);function Cr(r,e,t,n,s,i){if(y(e)==="Function")for(let o of R(e).slice(1)){let a=P(o)??(y(o)==="Typed"?P(m(o,1)):null);if(a===null||a.length<=1||t.has(a)||pe(a))continue;let u=r.lookupDefinition(a),c=r.contextStack[0]?.lexicalScope;u!==void 0&&c!==void 0&&c.bindings.get(a)===u&&"value"in u&&u.value?.isConstant===!0&&(t.add(a),n.push({severity:"warning",message:["parameter-shadows-constant",a],range:Pe(s,i)}))}for(let o of R(e))Cr(r,o,t,n,s,i)}function Jr(r,e,t,n,s,i){let o=y(e);if(o!==""){if(!t.has(o)&&r.operatorInfo(o)===void 0)if(t.add(o),r._typeResolver.resolve(o)!==void 0)n.push({severity:"warning",message:["type-not-callable",o],range:Pe(s,i)});else if(zo.has(o.toLowerCase()))n.push({severity:"warning",message:["print-not-available",o],range:Pe(s,i)});else{let a=r.suggestOperatorName(o),u=a===void 0?void 0:$t(a)??a;u!==void 0&&u!==o&&n.push({severity:"warning",message:["unknown-function",o,u],range:Pe(s,i)})}for(let a of R(e))Jr(r,a,t,n,s,i)}}function Uo(r){if(!(r instanceof Error)||r.name!=="CancellationError")return;let e=r.cause;if(e==="timeout"||e==="iteration-limit-exceeded"||e==="recursion-depth-exceeded")return e}function Ar(r,e){return{severity:"error",message:r,range:e}}var Xl="0.129.0";export{Yr as ComputeEngine,jt as canonicalLibraryName,tr as epsilLibraryNames,$t as epsilNameOf,Do as executeEpsil,vn as parseEpsil,Bn as resolveLibraryNames,Rn as serializeEpsil,Xl as version};
|
|
24
|
+
`).map(k=>t.text(`/// ${k}`)),E):E}return D(l)},Match:l=>{let h=jn(l);if(h!==null)return h;let p=m(l,1),g=R(l).slice(1),E=t.line("match ",n(p)," {");return g.length===0?t.line("match ",n(p)," {}"):t.stack(E,t.indent(t.stack(...g.map(j))),t.text("}"))},MatchCase:l=>j(l),Pin:l=>v(l),Alternatives:l=>v(l)};function j(l){let h=R(l),p=v(h[0]??"Nothing"),g=h.length>=3,E=g?h[1]:null,k=g?h[2]:h[1],w=[p];return E!=null&&w.push(" if ",n(E)),w.push(e?.fancySymbols?" \u21D2 ":" => ",n(k??"Nothing")),t.line(...w)}function v(l,h){let p=y(l);if(p==="Pin")return t.line("== ",n(m(l,1)));if(p==="Alternatives"){let k=R(l),w=[];return k.forEach((C,$)=>{$>0&&w.push(" | "),w.push(v(C,h))}),t.line(...w)}if(p==="Range"&&R(l).length===2)return t.line(v(m(l,1)??"Nothing",h),t.infixOperator(".."),v(m(l,2)??"Nothing",h));if(p==="List")return t.fencedList("[",t.separator(","),"]",R(l).map(k=>v(k,h)));if(p==="Tuple")return t.fencedList("(",t.separator(","),")",R(l).map(k=>v(k,h)));if(p==="Dictionary"){let k=R(l);return k.length===0?t.line(t.fence("{"),t.relationalOperator("->"),t.fence("}")):t.fencedList("{",t.separator(","),"}",k.map(w=>t.line(n(m(w,1)),t.relationalOperator("->"),v(m(w,2)??"Nothing",h))))}let g=P(l);if(g!==null){if(g==="_")return t.text("_");if(g==="True")return t.text("true");if(g==="False")return t.text("false");if(g.startsWith("___"))return t.text("..."+g.slice(3));if(g.startsWith("_")){let k=g.slice(1),w=h?.get(k);return t.text(w===void 0?X(k):X(k)+": "+w)}return t.line("== ",t.text(X(g)))}if(c(l))return t.text(Je(l,Ze));if(typeof l=="object"&&l!==null&&"str"in l)return o(l.str);let E=typeof l=="string"&&/^'[\s\S]*'$/.test(l)?_(l):null;return E!==null?o(E):n(T(l))}function T(l){let h=P(l);if(h!==null)return h!=="_"&&!h.startsWith("___")&&h.startsWith("_")?{sym:h.slice(1)}:l;let p=y(l);return p?{fn:[p,...R(l).map(T)]}:l}let B=l=>{if(l===null)return null;let h=_(l);return h!==null?h:P(l)},O=l=>{let h={typeParams:null,argTypes:[],decomposed:!1},p=m(l,1);if(y(p)!=="Typed")return{bodyExpr:p,retType:null,specifier:null,...h};let g=m(p,1),E=B(m(p,2));if(E!==null&&!ot(E))try{let k=ke(E,wn);if(typeof k!="string"&&k.kind==="signature"){let w=vt(k),C=k.typeParams??[],$=k.result;return{bodyExpr:g,retType:$==="unknown"||$==="any"?null:Kn($),specifier:w!==void 0?Vn(w):null,typeParams:C.length>0?C.map(Y=>Y.bound!==void 0?`${Y.name}: ${ce(Y.bound)}`:Y.name).join(", "):null,argTypes:C.length>0?(k.args??[]).map(Y=>Y.type):[],decomposed:!0}}}catch{}return{bodyExpr:g,retType:E,specifier:null,...h}},A={oo:"Infinity","+oo":"Infinity","-oo":"-Infinity",Infinity:"Infinity","+Infinity":"Infinity","-Infinity":"-Infinity",NaN:"NaN",nan:"NaN"},I=l=>/^-?[0-9.]/.test(l)||l.startsWith('"')||l==="true"||l==="false"||l in A,V=l=>{let h=[];for(let p of R(l)){if(y(p)==="Tuple"){let E=V(p);if(E===null)return null;h.push(E);continue}let g=P(p);if(g===null)return null;h.push(X(g))}return`(${h.join(", ")})`},U=l=>y(l)==="Spread"&&G(l)===1&&P(m(l,1))!==null,H=l=>l.every((h,p)=>y(h)==="Spread"?U(h)&&p===l.length-1:y(h)!=="Tuple"||V(h)!==null),z=(l,h,p)=>{if(y(l)==="Tuple")return t.text(V(l)??"");if(U(l))return t.text(`...${X(P(m(l,1)))}`);let g=y(l)==="Typed",E=g?P(m(l,1)):P(l),k=(g?B(m(l,2)):null)??(h!==void 0&&h!=="unknown"?ce(h):null);if(E!==null&&pe(E)&&k!==null&&I(k)){if(k.startsWith('"')&&k.endsWith('"')){let $=k.slice(1,-1).replace(/\\(["\\])/g,"$1");return t.text(`"${xt($)}"`)}return t.text(A[k]??k)}let w=E!==null?X(E):"",C=E!==null&&p!==void 0&&p.has(E)?"bind ":"";return t.text(k!==null?`${C}${w}: ${k}`:`${C}${w}`)},q=(l,h=[],p)=>t.fencedList("(",t.separator(","),")",l.map((g,E)=>z(g,h[E],p))),Q=l=>{let h=R(l).slice(1),p=m(l,1),g=h.some(Y=>y(Y)==="Typed"),E=y(p)==="Typed";if(!H(h))return D(l);let k=h.some(Y=>y(Y)==="Tuple"),w=h.some(Y=>y(Y)==="Spread");if(!g&&!E&&!k&&!w)return D(l);let{bodyExpr:C,decomposed:$}=O(l);if($)return D(l);let F=e?.fancySymbols?"\u21D2":"=>";return t.line(q(h),` ${F} `,n(C))},st=(l,h,p)=>i(0,()=>De(l,h,p)),De=(l,h,p)=>{let g=R(p).slice(1);if(!H(g))return null;let{bodyExpr:E,retType:k,specifier:w,argTypes:C}=O(p),$=w!==null?` ${w}`:"",F=k!==null?` -> ${k}`:"";return t.line(`${l} ${X(h)}`,q(g,C),`${$}${F} `,t.fencedList("{",t.separator(";"),"}",y(E)==="Block"?te(E,n):[n(E)]))},Ie=(l,h,p={})=>i(0,()=>kt(l,h,p)),kt=(l,h,p)=>{let g=P(l),E=g!==null?X(g):"",k=R(h).slice(1),{bodyExpr:w,retType:C,specifier:$,typeParams:F,argTypes:Y}=O(h),ne=[...$!==null?[$]:[],...p.algebraic??[]],Ee=ne.length>0?ne.join(" "):null,it=Ee!==null?` ${Ee}`:"",Ye=C!==null?` -> ${C}`:"",Kt=p.bind!==void 0?new Set(p.bind):void 0,Xt=p.hold?"hold ":"",Yn=F!==null?`<${F}>`:"";if(y(w)==="Block")return t.line(`${Xt}function ${E}${Yn}`,q(k,Y,Kt),`${it}${Ye} `,t.fencedList("{",t.separator(";"),"}",te(w,n)));if(F!==null)return t.line(`${Xt}function ${E}${Yn}`,q(k,Y,Kt),`${it}${Ye} `,t.fencedList("{",t.separator(";"),"}",[n(w)]));let jr=C!==null?Ye:Ee!==null?" -> unknown":"";return t.line(`${Xt}${E}`,q(k,void 0,Kt),`${it}${jr} = `,n(w))};function rt(l){if(l===null)return null;let h=Qe(l);if(h===null)return null;let p={},g=E=>(P(E)??_(E))==="True";for(let E of Object.keys(h)){let k=h[E];if(k!=null)switch(E){case"hold":if(!g(k))return null;p.hold=!0;break;case"commutative":case"associative":case"idempotent":case"involution":if(!g(k))return null;(p.algebraic??=[]).push(E);break;case"bind":{let w=y(k)==="List"?R(k):Array.isArray(k)?k:[k],C=[];for(let $ of w){let F=_($)??P($);if(F===null)return null;C.push(F)}p.bind=C;break}case"description":{let w=_(k);if(w===null)return null;p.description=w;break}default:return null}}return p}function St(l){return W[y(l)]?.(l)??null}function D(l){let h=y(l);return h?t.line(X(h),t.fencedList("(",t.separator(","),")",te(l,n))):t.line("Apply(",n(h),t.separator(","),t.fencedList("[",t.separator(","),"]",te(l,n)),")")}function Ce(l,h){let p=Mt(h);return p.length===0?t.text(l+"{}"):t.choice(t.line(l,ve(h)),t.stack(t.text(l+"{"),t.indent(t.stack(...p)),t.text("}")))}function ve(l){let h=Mt(l);if(h.length===0)return t.text("{}");let p=[];return h.forEach((g,E)=>{E>0&&p.push(t.separator(";")),p.push(g)}),t.line(t.fence("{"),...p,t.fence("}"))}function oe(l,h){let p=u[y(l)];return p&&p.precedence<h?t.line("(",n(l),")"):n(l)}let ae=l=>l!==null&&y(l)==="Block";function Fe(l){let h=[],p=l;for(;;){let g;if(y(p)==="If"){let k=G(p);if(k!==2&&k!==3)return null;let w=m(p,1),C=m(p,2);if(g=k===3?m(p,3):null,w===null||C===null||!ae(C))return null;h.push({head:()=>oe(w,le+1),body:C})}else{let k=Nr(p);if(k===null)return null;let{pattern:w,typed:C,subject:$,body:F}=k;h.push({head:()=>t.line("let ",v(w,C)," = ",oe($,le+1)),body:F}),g=k.fallback}if(g===null)return{clauses:h,elseBody:null};if(ae(g))return{clauses:h,elseBody:g};let E=y(g);if(E!=="If"&&E!=="Match")return null;p=g}}function $e(l){if(y(l)!=="Match"||G(l)!==3)return null;let h=m(l,1),p=m(l,2),g=m(l,3);if(h===null||p===null||g===null||y(p)!=="MatchCase")return null;let E=G(p);if(E!==2&&E!==3)return null;let k=m(p,1),w=E===3?m(p,2):null,C=m(p,E);if(k===null||C===null||!ae(C))return null;let $=Lr(k,w);if($===null||y(g)!=="MatchCase"||G(g)!==2||P(m(g,1))!=="_")return null;let F=m(g,2);return F===null?null:{subject:h,pattern:k,typed:$,body:C,fallbackBody:F}}function Nr(l){let h=$e(l);if(h===null)return null;let{subject:p,pattern:g,typed:E,body:k,fallbackBody:w}=h,C;if(P(w)==="Missing")C=null;else if(ae(w)||y(w)==="If"||y(w)==="Match")C=w;else return null;return{subject:p,pattern:g,typed:E,body:k,fallback:C}}function _r(l){let h=$e(l);if(h===null)return null;let{subject:p,pattern:g,typed:E,body:k,fallbackBody:w}=h;return y(w)!=="Break"||G(w)!==0?null:{subject:p,pattern:g,typed:E,body:k}}function Lr(l,h){let p=new Map;if(h===null)return p;let g=y(h)==="And"?R(h):[h];for(let E of g){if(y(E)!=="MatchesType"||G(E)!==2)return null;let k=P(m(E,1)),w=m(E,2);if(k===null||y(w)!=="TypeFrom"||G(w)!==1)return null;let C=_(m(w,1));if(C===null||p.has(k)||!Dr(C)||Ht(l,k)!==1)return null;p.set(k,C)}return p}function Dr(l){if(/[\r\n\u2028\u2029]/.test(l))return!1;try{return ke(l,wn),!0}catch{return!1}}function Ht(l,h){if(P(l)==="_"+h)return 1;let p=y(l);return p==="List"||p==="Tuple"?R(l).reduce((g,E)=>g+Ht(E,h),0):p==="Dictionary"?R(l).reduce((g,E)=>g+Ht(m(E,2)??"Nothing",h),0):0}let Mt=l=>te(l,n)??[];function jn(l){let h=Fe(l);if(h===null)return null;let{clauses:p,elseBody:g}=h,E=[];p.forEach(({head:$,body:F},Y)=>{E.push(Y===0?"if ":" else if "),E.push($()," ",ve(F))}),g!==null&&E.push(" else ",ve(g));let k=t.line(...E),w=[],C=$=>{let F=Mt($);F.length>0&&w.push(t.indent(t.stack(...F)))};return p.forEach(({head:$,body:F},Y)=>{w.push(t.line(Y===0?"if ":"} else if ",$()," {")),C(F)}),g!==null&&(w.push(t.text("} else {")),C(g)),w.push(t.text("}")),t.choice(k,t.stack(...w))}function Ir(l){let h=jn(l);if(h!==null)return h;if(G(l)!==3)return null;let p=m(l,1),g=m(l,2),E=m(l,3);return p===null||g===null||E===null||ae(g)||ae(E)?null:t.line(oe(g,le+1)," if ",oe(p,le+1)," else ",oe(E,le))}function qt(l,h){let p=Mt(h);return p.length===0?t.line(l," {}"):t.choice(t.line(l," ",ve(h)),t.stack(t.line(l," {"),t.indent(t.stack(...p)),t.text("}")))}function Fr(l){if(!ae(l)||G(l)!==2)return null;let h=m(l,1),p=m(l,2);if(h===null||p===null||!ae(p)||y(h)!=="If"||G(h)!==2)return null;let g=m(h,1),E=m(h,2);if(y(g)!=="Not"||G(g)!==1||y(E)!=="Break"||G(E)!==0)return null;let k=m(g,1);return k===null?null:{cond:k,body:p}}function $r(l){let h=g=>oe(g,le+1),p=R(l);if(p.length===2){let[g,E]=p;if(!ae(g)||y(E)!=="Element"||G(E)!==2)return null;let k=m(E,1),w=m(E,2);if(k===null||w===null)return null;let C;if(y(k)==="Tuple")C=V(k);else{let F=P(k);C=F===null?null:X(F)}if(C===null)return null;let $=t.line("for ",C," in ",h(w));return i(s+1,()=>qt($,g))}if(p.length===1){let g=Fr(p[0]);if(g!==null){let k=t.line("while ",h(g.cond));return i(s+1,()=>qt(k,g.body))}let E=_r(p[0]);if(E!==null){let{pattern:k,typed:w,subject:C,body:$}=E,F=t.line("while let ",v(k,w)," = ",h(C));return i(s+1,()=>qt(F,$))}}return null}function je(l){let h=y(l);if(!h)return null;let p=u[h];if(!p)return null;if(h==="MapsTo"&&s!==0)return i(0,()=>je(l));let g=e?.fancySymbols?p.fancySymbol??p.symbol:p.symbol;if(p.unary){if(G(l)!==1)return null;let k=m(l,1),w=y(k),C=u[w];return C&&C.precedence<p.precedence?t.line(g,"(",n(k),")"):t.line(g,n(k))}if(p.postfix){if(G(l)!==1)return null;let k=m(l,1),w=y(k),C=u[w];return C&&C.precedence<=p.precedence||f(k)||J(k)!==null?t.line("(",n(k),")",g):t.line(n(k),g)}let E=R(l).map((k,w)=>S(k,p,h,w===0?"left":"right")?t.line("(",n(k),")"):n(k));return E.length===0?null:t.list(p.relational?t.relationalOperator(g):t.infixOperator(g),E)}return y(r)==="Block"&&G(r)>=2?t.stack(...te(r,n)).serialize(0):n(r).serialize(0)}function er(r){return typeof r=="boolean"?r?"True":"False":r}function Ii(r){let e="tuple<";if(!r.startsWith(e)||!r.endsWith(">"))return null;let t=0;for(let n=e.length;n<r.length;n++){let s=r[n];if(s==="-"&&r[n+1]===">"){n+=1;continue}if(s==="<"||s==="("||s==="[")t+=1;else if(s===">"||s===")"||s==="]"){if(t===0)return s===">"&&n===r.length-1?r.slice(e.length,n):null;t-=1}}return null}function Qe(r){if(r===null)return null;let e=Object.create(null);if(typeof r=="object"&&!Array.isArray(r)&&"dict"in r&&typeof r.dict=="object"&&r.dict!==null){for(let[t,n]of Object.entries(r.dict))e[t]=er(n);return e}if(y(r)!=="Dictionary")return null;for(let t of R(r)){if(y(t)!=="KeyValuePair")return null;let n=_(m(t,1))??P(m(t,1));if(n===null)return null;e[n]=m(t,2)??"Nothing"}return e}function Fi(r){return r.startsWith("-")?r.slice(1):r.startsWith("+")?"-"+r.slice(1):"-"+r}function $i(r,e){return!(!/^\d[\d_]*(\.\d[\d_]*)?$/.test(r)||X(e)!==e||!/^[a-zA-Z][a-zA-Z0-9_]*$/.test(e)||/^[eE]/.test(e)||r==="0"&&/^[bBxX]/.test(e))}function Qs(r){return Rt.has(r)?Rt.get(r):cn(r)?r<65536?`\\u${("0000"+r.toString(16)).slice(-4)}`:`\\u{${("000000000"+r.toString(16)).slice(-8)}}`:String.fromCodePoint(r)}function xt(r){let e="",t=en(r);if(typeof t=="string")for(let n of t)e+=Qs(n.codePointAt(0));else for(let n of t)n.length===1?e+=Qs(n.codePointAt(0)):e+=n;return e}function X(r){if(Me.has(r))return`\`${r}\``;if(r==="let")return`\`${r}\``;if(/^[a-zA-Z][a-zA-Z\d_]*$/.test(r))return r;let e=r.codePointAt(0);if(ie.has(e))return`\`${xt(r)}\``;let t=!1,n=en(r),s=0;for(;!t&&s<n.length;){let i=n[s].codePointAt(0);t=Rt.has(i)||cn(i)||Ve(i),s+=1}return t?`\`${xt(r)}\``:r}var ji=new Set(["Alternatives","Annotated","At","Block","Colon","Comprehension","Condition","Declare","DeclareConformance","DeclareProtocol","DeclareSumType","DeclareType","DefineFunction","Delimiter","Hold","HoldValues","HorizontalSpacing","IndexedSequence","InvisibleOperator","Latex","LatexString","Loop","MatchCase","MatchesType","MemberCall","NamedArgument","OverParen","Pair","PreDecrement","PreIncrement","ReleaseHold","Rule","Sequence","Single","Spread","Square","Subscript","Text","Triple","Typed","Unevaluated","Which","Wildcard","WildcardOptionalSequence","WildcardSequence"]),Yi=new Set(["Dictionary","List","Set","String","Tuple"]),Wi=new Set(["Approx","ApproxEqual","ApproxNotEqual","NotApprox","NotApproxEqual","NotApproxNotEqual","NotGreater","NotGreaterNotEqual","NotLess","NotLessNotEqual","NotPrecedes","NotSubset","NotSucceeds","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","PlusMinus","Precedes","Succeeds","Tilde","TildeEqual","TildeFullEqual"]),Vi=new Set(["BuiltinFunction","ContinuationPlaceholder","ErrorCode","Object","Pin","Predicate","ProtocolMember","ProtocolProperty","RuntimeError","Signature","Subtype"]),Gi=new Set(["True","False","NaN"]),zi=new Set(qe.map(r=>r.name));function Ui(r){let e=/^([A-Z]+)(.*)$/s.exec(r);if(e===null)return;let[,t,n]=e;return t.length===1?t.toLowerCase()+n:/^[a-z]/.test(n)?t.slice(0,-1).toLowerCase()+t.slice(-1)+n:t.toLowerCase()+n}function $t(r){if(r.length<=1)return;let e=Ui(r);if(e!==void 0&&!zi.has(r)&&!Me.has(e)&&!(ji.has(r)||Yi.has(r)||Wi.has(r)||Vi.has(r)||Gi.has(r)))return e}var An;function tr(){if(An!==void 0)return An;let r=new Map;for(let e of xs){let t=e.definitions;if(t===void 0)continue;let n=Array.isArray(t)?t:[t];for(let s of n)for(let i of Object.keys(s)){let o=$t(i);o!==void 0&&(!r.has(o)||r.get(o),`${o}${r.get(o)}${i}`,r.set(o,i))}}return An=r,r}function jt(r){return tr().get(r)}var nr={definition:0,write:1,read:2};function sr(r,e,t){let n=[],s=new Map,i={span:[0,e.length],bindings:new Map,parent:void 0};function o(v){return typeof v=="object"&&v!==null&&!Array.isArray(v)?v.sourceOffsets:void 0}function a(v,T){if(T[0]<0||T[1]>e.length||T[0]>=T[1])return!1;let B=e.slice(T[0],T[1]);if(B===v||B==="`"+v+"`")return!0;if(B.length>v.length+8)return!1;let O=Nt(B).filter(A=>A.type!=="EOF");return O.length===1&&O[0].start===0&&O[0].end===B.length&&(O[0].type==="SYMBOL"||O[0].type==="VERBATIM_SYMBOL")&&(O[0].value??O[0].text)===v}function u(v,T){return{span:v??T.span,bindings:new Map,parent:T}}function c(v,T,B,O,A){let I=v.bindings.get(T);if(I!==void 0)return I;let V={name:T,kind:B,occurrences:[],...O===void 0?{}:{declaration:O},scope:v.span,visibleFrom:A};return n.push(V),v.bindings.set(T,V),V}function f(v,T,B,O){for(let I=B;I!==void 0;I=I.parent){let V=I.bindings.get(v);if(V!==void 0&&T[0]>=V.visibleFrom){V.occurrences.push({start:T[0],end:T[1],role:O});return}}let A=s.get(v);A===void 0&&(A={name:v,kind:"free",occurrences:[],scope:i.span,visibleFrom:0},s.set(v,A),n.push(A)),A.occurrences.push({start:T[0],end:T[1],role:O})}function d(v){let T=v===null?null:P(v);if(T===null||T==="_")return;let B=o(v);if(!(B===void 0||!a(T,B)))return{name:T,span:B}}function x(v,T,B,O,A){if(v===null)return;let I=y(v);if(I===""){let V=d(v);if(V===void 0)return;c(T,V.name,B,O,A).occurrences.push({start:V.span[0],end:V.span[1],role:"definition"});return}if(I==="Typed"){x(m(v,1),T,B,O,A);return}if(I==="Tuple"){for(let V of R(v))x(V,T,B,O,A);return}J(v,T)}function S(v,T){if(v===null)return;let B=y(v);if(B!==""){if(B==="Typed"){S(m(v,1),T);return}for(let I of R(v))S(I,T);return}let O=P(v);if(O===null||/^_+$/.test(O))return;let A=o(v);if(A!==void 0){if(O.startsWith("___")){let I=O.slice(3),V=[A[0]+3,A[1]];e.slice(A[0],A[0]+3)==="..."&&a(I,V)&&c(T,I,"pattern",A,T.span[0]).occurrences.push({start:V[0],end:V[1],role:"definition"});return}if(O.startsWith("_")&&a(O.slice(1),A)){c(T,O.slice(1),"pattern",A,T.span[0]).occurrences.push({start:A[0],end:A[1],role:"definition"});return}a(O,A)&&f(O,A,T,"read")}}function M(v,T,B){let O=d(m(v,1));if(O===void 0)return;let A=o(v)??O.span,I=c(T,O.name,"function",A,T.span[0]);I.declaration!==void 0&&(I.declaration=[Math.min(I.declaration[0],A[0]),Math.max(I.declaration[1],A[1])]),B&&I.occurrences.push({start:O.span[0],end:O.span[1],role:"definition"})}function b(v,T){for(let B of v)B!==null&&y(B)==="DefineFunction"&&M(B,T,!1)}function N(v,T){let B=u(o(v),T),O=[...R(v)];for(let A=1;A<O.length;A++)x(O[A],B,"parameter",void 0,B.span[0]);J(O[0]??null,B)}function J(v,T){if(v===null)return;let B=y(v);if(B===""){let O=d(v);O!==void 0&&f(O.name,O.span,T,"read");return}switch(B){case"Block":{let O=u(o(v),T),A=[...R(v)];b(A,O);for(let I of A)J(I,O);return}case"Declare":{let O=[...R(v)];for(let I=1;I<O.length;I++)J(O[I],T);let A=o(v);x(O[0]??null,T,"variable",A,A?.[1]??T.span[0]);return}case"Assign":{let O=[...R(v)];for(let A=1;A<O.length;A++)J(O[A],T);W(O[0]??null,T,o(v));return}case"DefineFunction":{M(v,T,!0);let O=m(v,2);O!==null&&y(O)==="Function"?N(O,T):J(O,T),J(m(v,3),T);return}case"Function":N(v,T);return;case"Loop":{let O=m(v,2);if(O!==null&&y(O)==="Element"){J(m(O,2),T);let A=u(o(v),T);x(m(O,1),A,"loop",o(O),A.span[0]),J(m(v,1),A);return}for(let A of R(v))J(A,T);return}case"Match":{J(m(v,1),T);let O=[...R(v)];for(let A=1;A<O.length;A++){let I=O[A];if(I!==null&&y(I)==="MatchCase"){let V=u(o(I),T),U=[...R(I)];S(U[0]??null,V);for(let H=1;H<U.length;H++)J(U[H],V)}else J(I,T)}return}case"DeclareType":case"DeclareSumType":case"DeclareProtocol":{let O=d(m(v,1));O!==void 0&&c(T,O.name,"type",o(v)??O.span,T.span[0]).occurrences.push({start:O.span[0],end:O.span[1],role:"definition"});return}case"KeyValuePair":case"NamedArgument":{let O=[...R(v)];for(let A=1;A<O.length;A++)J(O[A],T);return}case"Typed":{J(m(v,1),T);return}default:{typeof B=="string"?L(v,B,T):J(B,T);let O=o(v),A=typeof B=="string"&&t?.binderSites!==void 0&&j(T,B,O?.[0]??T.span[0])===void 0?t.binderSites(v):void 0;if(A!==void 0&&A.length>0){let I=new Map;[...R(v)].forEach((V,U)=>{let H=A.filter(q=>q.operands==="all"||q.operands.includes(U));if(H.length===0){J(V,T);return}let z=u(O,T);for(let q of H){let Q=I.get(q.name);Q===void 0?I.set(q.name,c(z,q.name,"parameter",void 0,z.span[0])):z.bindings.set(q.name,Q)}J(V,z)});return}for(let I of R(v))J(I,T);return}}}function L(v,T,B){if(T===""||T==="_")return;let O=o(v);if(O===void 0)return;let A=[O[0],O[0]+T.length];if(A[1]<=O[1]&&a(T,A)){f(T,A,B,"read");return}let I=[O[0],O[0]+T.length+2];I[1]<=O[1]&&e.slice(I[0],I[1])==="`"+T+"`"&&f(T,I,B,"read")}function W(v,T,B){if(v===null)return;let O=y(v);if(O==="Tuple"){for(let I of R(v))W(I,T,B);return}if(O==="Typed"){W(m(v,1),T,B);return}let A=d(v);if(A!==void 0){j(T,A.name,A.span[0])!==void 0?f(A.name,A.span,T,"write"):x(v,T,"variable",B,B?.[1]??T.span[0]);return}J(v,T)}function j(v,T,B){for(let O=v;O!==void 0;O=O.parent){let A=O.bindings.get(T);if(A!==void 0&&B>=A.visibleFrom)return A}}if(r!==null)if(y(r)==="Block"){let v=[...R(r)];b(v,i);for(let T of v)J(T,i)}else b([r],i),J(r,i);for(let v of n)v.occurrences.sort((T,B)=>T.start-B.start||T.end-B.end||nr[T.role]-nr[B.role]),v.occurrences=v.occurrences.filter((T,B,O)=>B===0||O[B-1].start!==T.start||O[B-1].end!==T.end);return n.sort((v,T)=>(v.occurrences[0]?.start??0)-(T.occurrences[0]?.start??0)),n}function Hi(r,e){let t=r;for(let n of e){if(t===null)return;t=R(t)[n]??null}return t===null?void 0:P(t)??void 0}function rr(r,e){return r===null?!1:P(r)===e?!0:y(r)===""?!1:R(r).some(n=>rr(n,e))}function ir(r,e){if(r===null)return!1;let t=y(r);return t===""?!1:t===e?!0:R(r).some(n=>ir(n,e))}var qi=new Set(["List","Set","Tuple","Pair","Triple"]);function Ki(r,e,t){let n=y(e);if(n==="")return;let s=e.sourceOffsets,o=s!==void 0&&t[s[0]]==="`"||r.lookupDefinition(n)!==void 0?n:jt(n)??n,a=r.lookupDefinition(o);if(a===void 0||!("operator"in a))return;let u=[...R(e)],c=[],f=new Set,d=a.operator.bindingSites;if(d!==void 0){let x;try{x=u.map(S=>r.box(S,{form:"raw"}))}catch{x=void 0}if(x!==void 0){let S=d(x,"pre"),M=Math.min(...S.filter(b=>b.clauseLocal).map(b=>b.path[0]));for(let b of S){let N=Hi(e,b.path);if(N===void 0||f.has(N))continue;f.add(N);let J=b.path[0];c.push({name:N,operands:b.clauseLocal?u.map((L,W)=>W).filter(L=>L<M||L>=J):"all"})}}}return u.forEach((x,S)=>{let M=[],b=P(x);if(b!==null)M.push(b);else if(qi.has(y(x)))for(let N of R(x)){let J=P(N);J!==null&&M.push(J)}for(let N of M)f.has(N)||N==="_"||!u.some((L,W)=>W!==S&&rr(L,N))||u.some(L=>ir(L,N))||(f.add(N),c.push({name:N,operands:"all"}))}),c}function Bn(r,e,t){let n=sr(r,e,{binderSites:u=>Ki(t,u,e)}),s=new Map,i=(u,c)=>`${u}:${c}`;for(let u of n){if(u.kind!=="free")continue;let c=jt(u.name);if(c!==void 0&&t.lookupDefinition(u.name)===void 0)for(let f of u.occurrences)e[f.start]!=="`"&&s.set(i(f.start,u.name),c)}if(s.size===0)return r;let o=u=>u.sourceOffsets,a=u=>{if(u===null||typeof u!="object")return;if(Array.isArray(u)){for(let f of u)a(f);return}let c=o(u);if("sym"in u){let f=c===void 0?void 0:s.get(i(c[0],u.sym));f!==void 0&&(u.sym=f);return}if("fn"in u){let f=u.fn,d=f[0];if(typeof d=="string"){let x=c===void 0?void 0:s.get(i(c[0],d));x!==void 0&&(f[0]=x)}else a(d);for(let x=1;x<f.length;x++)a(f[x]);return}if("dict"in u)for(let f of Object.values(u.dict))a(f)};return a(r),r}function Yt(r){let e=new Map;return or(r,(t,n)=>{e.has(t)||e.set(t,n)}),e}function or(r,e){if(r===null)return;let t=y(r);if(t!==""){if(t==="DefineFunction"||t==="Declare"||t==="Assign"){let n=m(r,1),s=P(n),i=Pn(n),o=Pn(r);if(s!==null&&i!==void 0){let a=t==="DefineFunction"?Zi(r):void 0;e(s,{name:i,header:Xi(r,t,o??i),...a!==void 0?{description:a}:{}})}}for(let n of R(r))or(n,e)}}function Xi(r,e,t){if(e!=="DefineFunction")return t;let n=Pn(m(m(r,2),1));return n===void 0?t:[t[0],n[0]]}function Zi(r){let e=m(r,3);if(e!==null){if(typeof e=="object"&&!Array.isArray(e)&&"dict"in e&&typeof e.dict=="object"&&e.dict!==null){let t=e.dict.description;return typeof t=="string"?t:void 0}if(y(e)==="Dictionary"){for(let t of R(e))if(!(y(t)!=="KeyValuePair"||(P(m(t,1))??_(m(t,1)))!=="description"))return _(m(t,2))??void 0}}}function Pn(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)?r.sourceOffsets:void 0}function Wt(r){let e=[...R(r)],t=e[e.length-1];if(t===void 0||y(t)!=="ErrorTrace")return[];let n=[];for(let s of R(t)){if(y(s)!=="ErrorFrame")continue;let i=_(m(s,1)),o=he(m(s,2));i===null||o===null||n.push({name:i,index:o})}return n}function Cn(r,e){let t=y(r);if(t==="")return;let n=0;for(let s of R(r)){if(n+=1,s===e)return{name:t,index:n};let i=Cn(s,e);if(i!==void 0)return i}}function Jn(r,e,t,n,s="declaration"){for(let{name:i,index:o}of r){let a=[];if(cr(e,i,a),a.length!==1)continue;let u=Qi([...R(a[0])],o-1,i,s,n),c=ar(u)??ar(a[0]);if(c!==void 0)return{range:c,call:a[0]}}return{range:t}}function Qi(r,e,t,n,s){if(n==="written"||!r.some(a=>y(a)==="NamedArgument"))return r[e]??null;let i=s?.(t);if(i===void 0)return null;let o=0;for(let a of r){if(y(a)!=="NamedArgument"){if(o===e)return a;o+=1;continue}let u=_(m(a,1));if(u!==null&&i.indexOf(u)===e)return a}return null}function lr(r,e,t,n,s="declaration"){return Jn(r,e,t,n,s).range}function cr(r,e,t){if(!(r===null||t.length>1)&&y(r)!==""){y(r)===e&&t.push(r);for(let n of R(r))cr(n,e,t)}}function ar(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)?r.sourceOffsets:void 0}var eo=new Set(["missing","unexpected-argument","incompatible-type"]);function yt(r,e,t){if(!eo.has(Nn(e)))return[];let n=no(e)??t?.enclosingFrame;if(n===void 0)return[];let s=[],i=qn(so(r,n.name));if(i!==void 0&&i.length>1)s.push({message:`\`${n.name}\` has ${i.length} overloads: ${i.map(u=>`\`${fr(u)}\``).join(", ")}`});else if(i!==void 0&&i.length===1){let u=ro(e,i[0],n.index);u!==void 0&&s.push({message:`\`${n.name}\` has signature \`${fr(i[0])}\`${u}`})}let o=t?.definitionSites?.get(n.name);o!==void 0&&!oo(o.name,t?.primaryRange)&&s.push({message:`\`${n.name}\` is defined here`,range:o.name});let a=to(r,e,n,t?.call,t?.boxedError);return a!==void 0&&s.push(a),s}function to(r,e,t,n,s){if(Nn(e)!=="incompatible-type")return;let i=m(e,1);if(y(i)!=="ErrorCode")return;let o=_(m(i,3));if(o===null)return;let a=s?.ops?.[1];if(a!==void 0&&a.operator!=="ErrorTrace"){let x=a.symbol;return typeof x=="string"?ur(x,a.valueDefinition?._typeProvenance,o):void 0}if(n===void 0)return;let u=[...R(n)][t.index-1]??null,c=u===null?null:P(u);if(c===null)return;let f=r.lookupDefinition(c),d=f!==void 0&&"value"in f?f.value._typeProvenance:void 0;return ur(c,d,o)}function ur(r,e,t){if(e!==void 0)for(let n=e.length-1;n>=0;n--){let s=e[n];if(s.kind==="inferred"&&s.cause!==void 0&&s.type.toString()===t)return{message:`\`${r}\` was inferred to have type \`${t}\` from its use in \`${s.cause.toString()}\``}}}function Nn(r){let e=m(r,1);return e===null?"":y(e)==="ErrorCode"?_(m(e,1))??"":_(e)??""}function no(r){let e=Wt(r)[0];if(e!==void 0)return e.name==="Block"||e.name==="Function"?void 0:e}function so(r,e){let t;try{t=r.lookupDefinition(e)}catch{return}if(t!==void 0)return"operator"in t?t.operator.signature.type:t.value.type.type}function ro(r,e,t){let n=e.args?.length??0,s=e.optArgs?.length??0,i=e.args?.[t-1]??e.optArgs?.[t-1-n]??void 0,o=i===void 0?"":` (\`${hr(i)}\`)`;switch(Nn(r)){case"missing":return i===void 0?void 0:`; argument ${t}${o} was not supplied`;case"unexpected-argument":return e.variadicArg!==void 0?void 0:`; it takes ${io(n,s)}, so argument ${t} is extra`;default:return i===void 0?void 0:`; argument ${t} is \`${hr(i)}\``}}function io(r,e){let t=n=>`${n} argument${n===1?"":"s"}`;return e>0?`${r} to ${t(r+e)}`:t(r)}function fr(r){return ce({...r,args:r.args?.map(Vt),optArgs:r.optArgs?.map(Vt),variadicArg:r.variadicArg===void 0?void 0:Vt(r.variadicArg)})}function Vt(r){return r.name!==void 0&&pe(r.name)?{type:r.type}:r}function hr(r){let e=Vt(r);return e.name===void 0?ce(e.type):`${e.name}: ${ce(e.type)}`}function oo(r,e){return e!==void 0&&r[0]<e[1]&&e[0]<r[1]}function pr(r,e,t,n,s){be(r,e,s,n,t)}function be(r,e,t,n,s){let i=y(e);if(i!=="")switch(i){case"Block":{let o=new Map(t);for(let a of R(e))be(r,a,t,n,s);Gt(t,o);return}case"Declare":{let o=R(e);for(let c of o.slice(1))be(r,c,t,n,s);if(o[0]===void 0)return;let a=P(o[0]);if(a===null){for(let c of zt(o[0]))t.delete(c);return}let u=_(o[1]);u!==null?t.set(a,u):t.delete(a);return}case"Function":{let[o,...a]=R(e),u=new Map(t);for(let c of a){if(y(c)==="Typed"){let f=P(m(c,1)),d=_(m(c,2));if(f!==null&&d!==null){t.set(f,d);continue}}for(let f of zt(c))t.delete(f)}o!==void 0&&be(r,o,t,n,s),Gt(t,u);return}case"Loop":{let[o,a]=R(e);if(y(a)==="Element"){let[u,c]=R(a);c!==void 0&&be(r,c,t,n,s);let f=new Map(t);if(u!==void 0)for(let d of zt(u))t.delete(d);o!==void 0&&be(r,o,t,n,s),Gt(t,f);return}for(let u of R(e))be(r,u,t,n,s);return}case"Match":{let[o,...a]=R(e);o!==void 0&&(ao(r,e,o,a,t,n,s),be(r,o,t,n,s));for(let u of a){if(y(u)!=="MatchCase")continue;let[c,...f]=R(u),d=new Map(t),x=dr(c);for(let S of x)t.delete(S);if(f.length===2)for(let S of xr(f[0])){let M=gr(S);M!==void 0&&x.includes(M.name)&&t.set(M.name,M.type)}for(let S of f)be(r,S,t,n,s);Gt(t,d)}return}default:for(let o of R(e))be(r,o,t,n,s)}}function Gt(r,e){r.clear();for(let[t,n]of e)r.set(t,n)}function zt(r){let e=P(r);return e!==null?[e]:R(r).flatMap(zt)}function dr(r){let e=P(r);if(e!==null){if(!e.startsWith("_"))return[];let t=e.replace(/^_+/,"");return t===""?[]:[t]}return y(r)==="Pin"?[]:R(r).flatMap(dr)}function ao(r,e,t,n,s,i,o){let a=P(t);if(a===null)return;let u=s.get(a);if(u===void 0)return;let c=yr(r,u);if(c===void 0)return;let f=new Set;for(let x of n){if(y(x)!=="MatchCase")continue;let S=R(x),M=S[0],b=S.length===3?S[1]:null;if(M===void 0)continue;let N=mr(r,M,b,c);if(N==="all")return;for(let J of N)f.add(J)}let d=c.alternatives.filter(x=>!f.has(x.name));d.length!==0&&i.push({severity:"warning",message:["match-not-exhaustive",c.label,d.map(ho).join(", ")],range:po(e)??[0,o.length]})}function mr(r,e,t,n){if(t!==null&&P(t)==="True"&&(t=null),t!==null){let a=uo(e,t);if(a===void 0)return[];if(["any","unknown","expression"].includes(a.type.trim()))return"all";let u=yr(r,a.type);return u===void 0?[]:u.alternatives.map(c=>c.name)}let s=P(e);if(s!==null)return Ln(s)?"all":(s==="True"||s==="False")&&n.alternatives.some(a=>a.kind==="boolean"&&a.name===s)?[s]:[];let i=y(e);if(i==="Alternatives"){let a=[];for(let u of R(e)){let c=mr(r,u,null,n);if(c==="all")return"all";a.push(...c)}return a}let o=n.alternatives.find(a=>a.kind==="variant"&&a.name===i);return o===void 0||o.kind!=="variant"?[]:lo(R(e),o.arity)?[o.name]:[]}function lo(r,e){let t=0,n=!1;for(let s of r){let i=P(s);if(i===null)return!1;if(co(i)){if(n)return!1;n=!0}else if(Ln(i))t+=1;else return!1}return n?t<=e:t===e}function Ln(r){return r.startsWith("_")&&!r.startsWith("__")}function co(r){return r.startsWith("___")}function uo(r,e){if(e===null)return;let t=P(r);if(t===null||!Ln(t))return;let n=t.slice(1);if(n==="")return;let s=gr(e);return s!==void 0&&s.name===n?s:void 0}function gr(r){if(y(r)!=="MatchesType")return;let e=P(m(r,1));if(e===null)return;let t=m(r,2);if(y(t)!=="TypeFrom")return;let n=_(m(t,1));return n===null?void 0:{name:e,type:n}}function xr(r){return y(r)!=="And"?[r]:R(r).flatMap(xr)}function yr(r,e){let t;try{t=r.type(e).type}catch{return}let n=br(r,t,0);return n===void 0?void 0:{label:e,alternatives:n}}var fo=8;function br(r,e,t){if(e==="boolean")return[{kind:"boolean",name:"True"},{kind:"boolean",name:"False"}];if(typeof e=="object"){if(e.kind==="reference"){let n=Zt(e);if(n._sumVariants!==void 0){let s=[];for(let i of n._sumVariants){let o=_n(r,i.name);if(o===void 0)return;s.push(o)}return s}if(n._sumOf!==void 0){let s=_n(r,n.name);return s===void 0?void 0:[s]}return n.alias&&n.def!==void 0&&t<fo?br(r,n.def,t+1):void 0}if(e.kind==="union"){let n=[],s=new Set;for(let i of e.types){if(typeof i!="object"||i.kind!=="reference")return;let o=Zt(i);if(o._sumOf===void 0)return;let a=_n(r,o.name);if(a===void 0)return;s.has(a.name)||(s.add(a.name),n.push(a))}return n.length===0?void 0:n}}}function _n(r,e){let t=gs(r,e);return t===void 0?void 0:{kind:"variant",name:e,arity:t.arity}}function ho(r){return r.kind==="boolean"?r.name==="True"?"true":"false":`${r.name}(${Array.from({length:r.arity},()=>"_").join(", ")})`}function po(r){if(typeof r!="object"||r===null||Array.isArray(r))return;let e=r.sourceOffsets;return Array.isArray(e)?[e[0],e[1]]:void 0}function Sr(r){return e=>nn(r,e)}function In(r){return ys(r)?"written":"declaration"}var Er=60,mo=new Set(["variable-redeclaration","protocol-implementation-duplicate","argument-name-unknown","argument-order-invalid","argument-name-duplicate","argument-names-unavailable","argument-optional-skipped","argument-names-required","dot-call-not-a-protocol-function","callback-arity","pipe-stage-arity","no-product-between-points","no-division-by-point","incompatible-type","incompatible-dimensions","invalid-axis","invalid-symbol","missing","unexpected-argument","unexpected-mathjson","unexpected-operator"]);function go(r,e,t,n){let s=y(e),i=null,o=null;s==="DefineFunction"?(i=m(e,1),o=m(e,2)):s==="Declare"&&(i=m(e,1),o=bo(e));let a=P(i);if(a===null||o===null||y(o)!=="Function")return;let u=kr(i)??kr(e);if(u===void 0)return;let c=xo(r,a)??yo(t),f=typeof c=="object"&&(c.kind==="signature"||c.kind==="union"||c.kind==="intersection")?vt(c)??[]:void 0,d={name:a,range:u,effects:f,declared:Eo(r,o)||ko(r,e)},x=n.findIndex(S=>S.name===a);x<0?n.push(d):n[x]={...d,range:n[x].range,declared:n[x].declared||d.declared}}function xo(r,e){let t=r.lookupDefinition(e);if(t===void 0)return;let n="operator"in t?t.operator.signature.type:t.value.type.type;return typeof n=="object"&&(n.kind==="signature"||n.kind==="union"||n.kind==="intersection")?n:void 0}function yo(r){if(!ge(r,"Declare"))return;let e=r.ops[r.ops.length-1],t=e!==void 0&<(e)?e.get("value"):void 0;if(!(t===void 0||t.operator!=="Function"))return t.canonical.type.type}function Mr(r){for(let e of R(r).slice(1))if(y(e)==="Dictionary")return e;return null}function bo(r){let e=Mr(r);if(e===null)return null;for(let t of R(e)){if(y(t)!=="KeyValuePair")continue;let n=m(t,1);if(P(n)==="value"||_(n)==="value")return m(t,2)}return null}function vr(r,e){if(ot(e))return!1;try{let t=ke(e,r._typeResolver);return typeof t=="object"&&t.kind==="signature"&&t.effects!==void 0}catch{return!1}}function Eo(r,e){let t=m(e,1);if(t===null||y(t)!=="Typed")return!1;let n=_(m(t,2));return n!==null&&vr(r,n)}function ko(r,e){if(y(e)!=="Declare")return!1;let t=null;for(let s of R(e).slice(1)){let i=_(s);i!==null&&(t=i)}let n=Mr(e);if(t===null&&n!==null)for(let s of R(n)){if(y(s)!=="KeyValuePair")continue;let i=m(s,1);(P(i)==="type"||_(i)==="type")&&(t=_(m(s,2)))}return t!==null&&vr(r,t)}function kr(r){if(r===null||typeof r!="object"||Array.isArray(r))return;let e=r.sourceOffsets;if(Array.isArray(e)&&e.length===2&&typeof e[0]=="number"&&typeof e[1]=="number")return[e[0],e[1]]}function So(r){return mo.has(r)||r.startsWith("expected-")}function Tr(r,e,t,n=[],s){let i=r._typeRegistryRollbackPoint(),o=r._protocolRegistryRollbackPoint();r._staticTypeCheckDepth+=1,r.pushScope(void 0,"epsil:static-check");let a=r._staticAssignmentEvidence;r._staticAssignmentEvidence=new Map,r._factSuppressionDepth+=1;try{return r._withBoxingPassWindow(()=>r._withRolledBackInference(()=>vo(r,e,t,n,s?.effects)))}finally{r._staticAssignmentEvidence=a,r.popScope(),r._factSuppressionDepth-=1,r._staticTypeCheckDepth-=1,i(),o()}}function Mo(r,e,t){let n=r._staticAssignmentEvidence;if(n===void 0)return;let s,i;if(ge(e,"Assign"))s=e.ops[0],i=e.ops[1];else if(ge(e,"Declare")){s=e.ops[0];let c=e.ops.slice(1),f=c[c.length-1],d=lt(f)?f:void 0,x=d===void 0?c:c.slice(0,-1),S=x.find(M=>Se(M))??d?.get("type");if(S!==void 0){let M=Se(S)?S.string:fe(S)?S.symbol:null;if(s!==void 0&&fe(s)&&M!==null){try{r.declare(s.symbol,M),t.add(s.symbol)}catch{}let b=x.find(N=>!Se(N))??d?.get("value");if(b!==void 0&&b.operator!=="Function"){let N=b.canonical;if(N.isValid&&!N.type.isUnknown){let J=r.box(s.symbol).valueDefinition;if(J!==void 0&&(n.set(J,N._literalType??N.type.type),J._placeholderSkeleton!==void 0&&t.has(s.symbol))){let L=tn(J._placeholderSkeleton,N.type.type);L!==J.type.type&&J._setElementRefinement(r.type(L))}}}}return}i=x.find(M=>!Se(M))??d?.get("value")}else return;if(s===void 0||i===void 0||i.operator==="Function"||(i=i.canonical,!i.isValid))return;let o=i.type;if(o.isUnknown)return;if(ge(s,"Tuple")){let c=o.type;typeof c=="object"&&c.kind==="tuple"&&c.elements.length===s.nops&&s.ops.every(f=>fe(f))&&s.ops.forEach((f,d)=>{let x=c.elements[d].type;if(x==="unknown"||!fe(f))return;let S=r.box(f.symbol),M=S.valueDefinition;M!==void 0&&(S._infer(()=>cs(r,x),"replace"),n.set(M,x))});return}if(!fe(s))return;let a=r.box(s.symbol),u=a.valueDefinition;if(u!==void 0){if(u._placeholderSkeleton!==void 0&&t.has(s.symbol)){let c=tn(u._placeholderSkeleton,o.type);c!==u.type.type&&u._setElementRefinement(r.type(c))}else a._infer(()=>us(r,i).type,"replace");n.set(u,i._literalType??o.type)}}function vo(r,e,t,n,s){let i=y(e)==="Block"?[...R(e)]:[e],o=Yt(e),a=new Map,u=new Map,c=new Map,f=new Map,d=new Set,x=new Map;for(let S of i){let M=wo(S,t,u);M!==void 0&&n.push(M);let b=Ro(S,t,f);b!==void 0&&n.push(b);let N=No(S),J,L,W=r._epsilDeclarationRoute;r._epsilDeclarationRoute=Fn(S);try{Te(r._deadlineFrame),L=r.box(S),J=L.json}catch(U){if(at(U))throw U;continue}finally{r._epsilDeclarationRoute=W}pr(r,S,t,n,x),M===void 0&&Oo(S,J,t,u),Ao(S,c);let j=Bo(r,S,L,t,c);j!==void 0&&n.push(j),s!==void 0&&M===void 0&&j===void 0&&go(r,S,L,s);let v=Jo(r,L);v===void 0&&Po(r,L,a),v===void 0&&Mo(r,L,d);let T=[];tt(J,T);let B=new Map;{let U=[L];for(;U.length>0;){let H=U.pop();if(H.operator==="Error"){let Q=JSON.stringify(H.json);B.has(Q)||B.set(Q,H)}let z=H.values;if(Array.isArray(z))for(let Q=z.length-1;Q>=0;Q--)U.push(z[Q]);let q=H.ops;if(q!==void 0)for(let Q=q.length-1;Q>=0;Q--)U.push(q[Q])}}if(T.length===0&&v===void 0)continue;let[O,A]=Et(S,t),I=Dn(S);v!==void 0&&n.push({severity:"error",message:["static-type-error",v,I,"incompatible-type"],range:[O,A,O]});let V=new Set;for(let U of T){let H=bt(U);if(!So(H))continue;let z=Ut(U),q=wr(U),Q=N.get(q);if(Q!==void 0&&Q>0){N.set(q,Q-1);continue}if(V.has(q))continue;V.add(q);let st=Cn(J,U),De=Jn(st===void 0?[]:[st],S,[O,A],D=>nn(r,D),In(H)),[Ie,kt]=De.range,rt={severity:"error",message:["static-type-error",z,De.call===void 0?I:Dn(De.call),H],range:[Ie,kt,Ie]},St=yt(r,U,{definitionSites:o,primaryRange:[Ie,kt],enclosingFrame:st,call:De.call,boxedError:B.get(JSON.stringify(U))});if(St.length>0&&(rt.notes=St),H==="incompatible-type"){let Ce=B.get(JSON.stringify(U))?.ops?.[1],ve=m(U,1),oe=ve!==null&&y(ve)==="ErrorCode"?nt([...R(ve)][1]):void 0;if(Ce!==void 0&&fe(Ce)&&oe!==void 0&&oe!==""){let ae=Ce.valueDefinition,Fe=ae===void 0?void 0:r._staticAssignmentEvidence?.get(ae),$e=ke(oe,r._typeResolver);Fe!==void 0&&$e!==void 0&&Zn(Fe,$e)&&!Hn(Fe,$e)&&(rt.notes??=[]).push({message:`the assignment gives \`${Ce.symbol}\` the type \`${ce(Fe)}\`, which only POSSIBLY fits \`${oe}\` \u2014 annotate the declaration (\`let ${Ce.symbol}: ${oe}\`) to state the contract and have each assignment checked against it`})}}n.push(rt)}}return n}function Or(r){switch(y(r)){case"DeclareType":{let e=et(m(r,1));return e===void 0?void 0:{kind:"type",names:[e]}}case"DeclareSumType":{let e=[...R(r)],t=et(e[0]??null);if(t===void 0)return;let n=[t];for(let s of e.slice(1)){if(y(s)!=="Tuple")continue;let i=et(m(s,1));i!==void 0&&n.push(i)}return{kind:"type",names:n}}case"DeclareProtocol":{let e=et(m(r,1));return e===void 0?void 0:{kind:"protocol",names:[e]}}default:return}}function et(r){if(r!==null)return _(r)??P(r)??void 0}function Fn(r){let e=y(r);return e==="DeclareType"||e==="DeclareSumType"||e==="DeclareProtocol"||e==="DeclareConformance"||e==="DefineFunction"}var To=new Set(["invalid-type-declaration","invalid-protocol-declaration","type-redefinition","protocol-redefinition"]);function Oo(r,e,t,n){let s=Or(r);if(s===void 0)return;let i=[];if(tt(e,i),i.some(a=>To.has(bt(a))))return;let o=Et(r,t);for(let a of s.names)n.set(`${s.kind} ${a}`,o)}function wo(r,e,t){let n=Or(r);if(n===void 0)return;let[s,i]=Et(r,e);for(let o of n.names){let a=t.get(`${n.kind} ${o}`);if(a!==void 0)return{severity:"error",message:[n.kind==="type"?"type-redefinition":"protocol-redefinition",o],range:[s,i,s],notes:[{message:`\`${o}\` is first declared here`,range:a}]}}}function Ro(r,e,t){let n=$n(r);if(n.length===0)return;let s=Et(r,e),i=n.find(o=>t.has(o));if(i===void 0){for(let o of n)t.set(o,s);return}return{severity:"error",message:["variable-redeclaration",i],range:[s[0],s[1],s[0]],notes:[{message:`\`${i}\` is first declared here`,range:t.get(i)}]}}function $n(r){if(y(r)!=="Declare")return[];let e=[],t=n=>{if(n===null)return;if(y(n)==="Tuple"){for(let i of R(n))t(i);return}let s=P(n);s!=null&&s!=="_"&&s!=="Nothing"&&e.push(s)};return t(m(r,1)),e}function Ao(r,e){let t=y(r);if(t!=="Assign"&&t!=="Declare"||t==="Declare"&&m(r,2)===null)return;let n=et(m(r,1));n!==void 0&&e.delete(n)}function Bo(r,e,t,n,s){if(y(e)!=="DefineFunction")return;let i=et(m(e,1));if(i===void 0||!ge(t,"DefineFunction"))return;let o=t.ops[1];if(!ge(o,"Function"))return;let a=o.type.type;if(zn(a))return;let u=hs(a),c=Et(e,n),f=s.get(i)??[],d=f.find(x=>ps(x.signature,u));if(d===void 0){fs(r.lookupDefinition(i))||(f.push({signature:u,range:c}),s.set(i,f));return}return{severity:"error",message:["function-redefinition",i],range:[c[0],c[1],c[0]],notes:[{message:`this clause of \`${i}\` is first defined here`,range:d.range}]}}function Po(r,e,t){let n=null,s;if(ge(e,"Assign")){let a=e.ops[0];n=fe(a)?a.symbol:null;let u=n===null?void 0:t.get(n);if(u!==void 0){r.box(n)._infer(()=>u,"narrow");return}let c=e.ops[1];c!==void 0&&c.operator==="Function"&&(s=c.type.type)}else if(ge(e,"Declare")){let a=e.ops[1];if(Se(a)){let u=e.ops[0];n=fe(u)?u.symbol:null;try{s=r.type(a.string).type}catch{return}}}if(n===null||s===void 0||!Co(s)||t.has(n))return;let i=r.lookupDefinition(n);if(i!==void 0&&(!Qn(i)||i.value.isConstant||!i.value.inferredType&&!i.value.type.isUnknown||!i.value.type.isUnknown&&!Xn(i.value.type.type)))return;let o=s;r.box(n)._infer(()=>o,"narrow")&&t.set(n,o)}function Co(r){return typeof r=="string"||r.kind!=="signature"?!1:[...r.args??[],...r.optArgs??[]].some(e=>e.name!==void 0)}function Jo(r,e){if(!ge(e,"Declare"))return;let t=e.ops[1];if(!Se(t))return;let n=e.ops.find(f=>lt(f));if(n===void 0||!lt(n))return;let s=n.get("value");if(s===void 0||n.get("holdUntil")!==void 0)return;let i;try{i=r.type(t.string)}catch{return}if(i.isUnknown||s.type.isUnknown)return;let o=es(s)||Se(s)||fe(s,"True")||fe(s,"False");if(Se(s)&&ms(i.type)&&ds(s.string)||!(o?!s.type.matches(i):i.isDisjointFrom(s.type)))return;let u=`The value "${s.toString()}" of type "${s.type}" is not compatible with the declared type "${i}"`,c=is(s,i);return c===void 0?u:`${u}. ${c}`}function No(r){let e=[];tt(r,e);let t=new Map;for(let n of e){let s=wr(n);t.set(s,(t.get(s)??0)+1)}return t}function wr(r){let e=m(r,1);return Ut(e===null?r:["Error",e])}function tt(r,e){if(y(r)==="Error"){let t=[];for(let n of R(r))tt(n,t);e.push(...t.length>0?t:[r]);return}if(ns(r)){for(let t of Object.values(r.dict))tt(t,e);return}for(let t of R(r))tt(t,e)}function bt(r){let e=m(r,1);return e===null?"error":y(e)==="ErrorCode"?nt(m(e,1)??"Nothing"):nt(e)}function Ut(r){let e=m(r,1),t=m(r,2),n=y(t)==="ErrorTrace"?null:t,s="error",i=[];if(e!==null)if(y(e)==="ErrorCode"){let c=[...R(e)].map(nt);s=c[0]??s,i.push(...c.slice(1))}else s=nt(e);let o=n===null?"":nt(n),a=o===""?"":/^\d+$/.test(o)?`for argument ${o}`:o.length<=40?`at \`${o}\``:`\u2014 ${o}`,u;switch(s){case"expected-function":u=i.length>=2?a===""?`\`${i[0]}\`: expected a function, got \`${i[1]}\``:`expected a function, got \`${i[1]}\``:`expected a function (${i.join(", ")})`;break;case"incompatible-type":u=i.length===2?`expected \`${i[0]}\`, got \`${i[1]}\``:`incompatible type: ${i.join(", ")}`;break;case"missing":u=i.length===0?"a required argument is missing":`a required argument is missing (${i.join(", ")})`;break;case"unexpected-argument":return i.length===0?"unexpected argument":`unexpected argument \`${i.join(", ")}\``;case"callback-arity":return i.length===0?"the callback takes the wrong number of parameters":i.join(" ");case"pipe-stage-arity":return i.length===0?"the pipe stage takes the wrong number of parameters":i.join(" ");case"no-division-by-point":return"a point cannot be a divisor";case"no-product-between-points":{let c=i.slice(1).join(" ");return c===""?"no product is defined between points":`no product is defined between points; ${c}`}case"invalid-symbol":u=i.length===0?"invalid symbol":`invalid symbol \`${i.join(", ")}\``;break;case"protocol-function-not-a-field":{let c=(i[1]??"").split(", ").filter(x=>x!=="").map(x=>`\`${x}\``),f=c.length===1?"protocol":"protocols",d=i[2]==="assign"?" and cannot be assigned":c.length===1?`: call it as \`${i[0]}(x)\` or \`x.${i[0]}()\``:"; more than one applies here, so call it with a qualified name";u=i.length>=2&&c.length>0?`\`${i[0]}\` is a function member of the ${c.join(" and ")} ${f}, not a field${d}`:`a protocol function member is not a field (${i.join(", ")})`;break}case"dot-call-not-a-protocol-function":{let[c,f]=i;u=c===void 0?"only a protocol function can be called with a dot":`\`${c}\` is not a protocol function${f===void 0?"":` on a value of type \`${f}\``}: write \`${c}(x)\` or \`x |> ${c}\``;break}default:{let c=/^[a-z][a-z0-9-]*$/.test(s)?s.replaceAll("-"," "):s;u=i.length===0?c:`${c}: ${i.join(", ")}`}}return a===""?u:`${u} ${a}`}function nt(r){return _(r)??Dn(r)}function Dn(r){let e;try{e=Rn(r).replaceAll(/\s+/g," ").trim()}catch{return""}return e.length>Er?`${e.slice(0,Er-1)}\u2026`:e}function Et(r,e){return(typeof r=="object"&&r!==null&&!Array.isArray(r)?r.sourceOffsets:void 0)??[0,e.length]}function _o(r){let e={};for(let t of r._typeResolver.names){let n=r._typeResolver.resolve(t)?._sumOf;n!==void 0&&(e[t]=n)}return e}var Lo=0;function Do(r,e,t){let n=r._epsilBatchId;r._epsilBatchId=++Lo;try{return Io(r,e,t)}finally{r._epsilBatchId=n}}function Io(r,e,t){let n=[],s;try{let[M,b]=vn(e,t?.url,{parseLatex:t?.parseLatex,allowHostPragmas:t?.allowHostPragmas??!1,typeNames:r._typeResolver.names,protocolNames:Object.keys(r._protocolRegistry),sumVariants:_o(r),deadline:r._deadlineFrame});s=Bn(M,e,r),n.push(...b)}catch(M){if(M instanceof Ge)return n.push(Ar(["error-directive",M.message],[0,e.length])),{value:r.Nothing,diagnostics:n};if(at(M))return{value:r.box(["Error",{str:M instanceof Error?M.message:"Timeout exceeded"},{str:"timeout"}]),diagnostics:n,valueRange:[0,e.length]};throw M}let i=y(s)==="Block"?[...R(s)]:[s],o=Yt(s),a=!1;if(!n.some(M=>M.severity==="error"))try{Tr(r,s,e,n)}catch(M){if(!at(M))throw M;a=!0}if(!a&&!n.some(M=>M.severity==="error")){let M=new Set;for(let b of i)Cr(r,b,M,n,b,e)}let u=r.Nothing,c,f=new Set,d=new Set;for(let M=0;M<i.length;M++){let b=i[M],N;c=Pe(b,e);let J;Br(r,b,f,n,b,e);let L=r._epsilDeclarationRoute;r._epsilDeclarationRoute=Fn(b);try{Te(r._deadlineFrame),J=Fo(b,d),u=J===void 0?r.box(b).evaluate():r.error(["variable-redeclaration",J]);let j=u.errors;j.length>0&&(c=Rr(r,j[0].json,b,c))}catch(j){let v=j instanceof Error?j.message:String(j);N=Uo(j),u=N!==void 0?r.box(["Error",{str:v},{str:N}]):r.box(["Error",{str:v}])}finally{r._epsilDeclarationRoute=L}let W=J!==void 0&&n.some(j=>Array.isArray(j.message)&&j.message[0]==="variable-redeclaration"&&j.message[1]===J);if(M<i.length-1&&!W){let j=u.errors;if(j.length>0){let v=$o(j[0].json),T=Ut(j[0].json),B=Rr(r,j[0].json,b,Pe(b,e)),O=Ar(N!==void 0?["evaluation-canceled",N,j[0].toString()]:["runtime-error",T,v,bt(j[0].json)],B),A=yt(r,j[0].json,{definitionSites:o,primaryRange:B,boxedError:j[0]});A.length>0&&(O.notes=A),n.push(O)}}if(N==="timeout")break;Jr(r,u.json,f,n,b,e)}let x=Wo(i,e);for(let M of Object.values(r._protocolRegistry))for(let b of M.conformances)b.pending&&n.push({severity:"warning",message:["protocol-implementation-pending",b.targetKey,M.name,b._pendingReason??""],range:Vo(x,b.targetKey,M.name)??[0,e.length]});let S=u.errors.length>0?yt(r,u.errors[0].json,{definitionSites:o,primaryRange:c,boxedError:u.errors[0]}):[];return{value:u,diagnostics:n,...c===void 0?{}:{valueRange:c},...S.length===0?{}:{valueNotes:S}}}function Fo(r,e){let t=$n(r),n=t.find(s=>e.has(s));if(n!==void 0)return n;for(let s of t)e.add(s)}function $o(r){let e=[...R(r)],t=e[e.length-1];if(t===void 0||y(t)!=="ErrorTrace")return"";let n=[];for(let s of R(t)){if(y(s)==="ErrorBroadcast"){let a=_(m(s,1)),u=he(m(s,2)),c=he(m(s,3));if(a===null||u===null||c===null)continue;n.push(`while applying ${a} element-wise over ${c} element${c===1?"":"s"} (element ${u})`);continue}if(y(s)!=="ErrorFrame")continue;let i=_(m(s,1)),o=he(m(s,2));i===null||o===null||i==="Block"||i==="Function"||n.push(`in ${i} argument ${o}`)}return n.join(", ")}function Rr(r,e,t,n){return lr(Wt(e),t,n,Sr(r),In(bt(e)))}function Br(r,e,t,n,s,i,o=new Set){let a=y(e);if(a==="")return;if(!t.has(a)&&!o.has(a)&&r.operatorInfo(a)===void 0&&!jo(r,a)){let c=Go(r,a);c!==void 0&&(t.add(a),n.push({severity:"warning",message:["protocol-property-not-callable",a,c],range:Pr(e)??Pe(s,i)}))}let u=a==="Function"?Yo(e,o):o;for(let c of R(e))Br(r,c,t,n,s,i,u)}function jo(r,e){let t=r.lookupDefinition(e);return t===void 0?!1:"value"in t?t.value.type.matches("function"):!0}function Yo(r,e){let t=new Set(e),n=[...R(r)].slice(1),s=i=>{let o=P(i);o!=null&&t.add(o);for(let a of R(i))s(a)};for(let i of n)s(i);return t}function Wo(r,e){let t=[];for(let n of r){if(y(n)!=="DeclareConformance")continue;let s=_(m(n,1))??P(m(n,1));if(s==null)continue;let i=_(m(n,3)),o=i===null||i===""?void 0:i,a=Pe(n,e);for(let u of R(m(n,2)??"Nothing")){let c=P(u)??_(u);c!=null&&t.push({target:s,protocol:c,clause:o,range:a})}}return t}function Vo(r,e,t){let n=r.filter(s=>s.protocol===t&&(s.clause===void 0?e===s.target:e.startsWith(`${s.target} where `)));return n.length===1?n[0].range:void 0}function Go(r,e){for(let t of Object.values(r._protocolRegistry)){let n=t.members[e]?.kind;if(n==="readonly"||n==="readwrite")return t.name}}function Pr(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)?r.sourceOffsets:void 0}function Pe(r,e){return Pr(r)??[0,e.length]}var zo=new Set(["println","printf","puts","echo"]);function Cr(r,e,t,n,s,i){if(y(e)==="Function")for(let o of R(e).slice(1)){let a=P(o)??(y(o)==="Typed"?P(m(o,1)):null);if(a===null||a.length<=1||t.has(a)||pe(a))continue;let u=r.lookupDefinition(a),c=r.contextStack[0]?.lexicalScope;u!==void 0&&c!==void 0&&c.bindings.get(a)===u&&"value"in u&&u.value?.isConstant===!0&&(t.add(a),n.push({severity:"warning",message:["parameter-shadows-constant",a],range:Pe(s,i)}))}for(let o of R(e))Cr(r,o,t,n,s,i)}function Jr(r,e,t,n,s,i){let o=y(e);if(o!==""){if(!t.has(o)&&r.operatorInfo(o)===void 0)if(t.add(o),r._typeResolver.resolve(o)!==void 0)n.push({severity:"warning",message:["type-not-callable",o],range:Pe(s,i)});else if(zo.has(o.toLowerCase()))n.push({severity:"warning",message:["print-not-available",o],range:Pe(s,i)});else{let a=r.suggestOperatorName(o),u=a===void 0?void 0:$t(a)??a;u!==void 0&&u!==o&&n.push({severity:"warning",message:["unknown-function",o,u],range:Pe(s,i)})}for(let a of R(e))Jr(r,a,t,n,s,i)}}function Uo(r){if(!(r instanceof Error)||r.name!=="CancellationError")return;let e=r.cause;if(e==="timeout"||e==="iteration-limit-exceeded"||e==="recursion-depth-exceeded")return e}function Ar(r,e){return{severity:"error",message:r,range:e}}var Xl="0.129.1";export{Yr as ComputeEngine,jt as canonicalLibraryName,tr as epsilLibraryNames,$t as epsilNameOf,Do as executeEpsil,vn as parseEpsil,Bn as resolveLibraryNames,Rn as serializeEpsil,Xl as version};
|