feat: Index behaviors by return typing strategy

* Adds the concept of, and options for, the return typing strategy
  * adds the strategy at the beginning of every behavior index
  * adds the strategy as an additional argument to resolve
  * No actual use of return type strategy so far
  * Sets up eslint
  * Fixes eslint errors
This commit is contained in:
Glen Whitney 2025-04-26 00:20:30 -07:00
parent aad62df8ac
commit 47370cec9e
16 changed files with 602 additions and 59 deletions

View file

@ -11,7 +11,7 @@ function complexSpecialize(ComponentType) {
const typeName = `Complex(${ComponentType})`
if (ComponentType.concrete) {
const fromSpec = [match(
ComponentType, math => r => ({re: r, im: ComponentType.zero}))]
ComponentType, () => r => ({re: r, im: ComponentType.zero}))]
for (const {pattern, does} of ComponentType.from) {
fromSpec.push(match(
this.specialize(pattern.type),