refactor: prepare for boolean functions
All checks were successful
/ test (pull_request) Successful in 19s

* Defines a BooleanT type
  * adds options to the Type constructor, so far just to allow conversions
    from other types
  * renames Number type to NumberT
  * records the name of types, and puts the name in the string representation
  * defines a conversion fron BooleanT to NumberT, specified to be automatic
  * stub code for automatic conversions, not yet complete
  * BooleanT not yet added to nanomath

Checked that the new facilities do not disrupt the prior behavior on numbers.
This commit is contained in:
Glen Whitney 2025-04-10 13:57:05 -07:00
parent 14011984a0
commit 5bee93dbb3
16 changed files with 123 additions and 62 deletions

View file

@ -1,4 +1,7 @@
import {plain} from './helpers.js'
import {BooleanT} from '#boolean/BooleanT.js'
import {Returns} from '#core/Type.js'
import {NumberT} from '#number/NumberT.js'
// Not much to do so far when there is only one type
export const number = plain(a => a)
number.also(BooleanT, Returns(NumberT, a => a ? 1 : 0))