import { Complex } from './Complex/type.js' import { absquare as absquare_complex } from './Complex/arithmetic.js' import { square } from './experiment/arithmeticInfer.js' const add = (a: number, b: number) => a + b const multiply = (a: number, b: number) => a * b const unaryMinus = (a: number) => -a const absquare = (z: Complex) => z.re * z.re + z.im * z.im const quatAbsquare = absquare_complex({ add, absquare }) const result = quatAbsquare({re: {re: 0, im: 1}, im: {re:2, im: 3}}) const typeTest: typeof result = 7 // check myabs is just a number console.log() console.log('Result is', result) const mySquare = square({ multiply, unaryMinus }) console.log() console.log('mySquare(4)=', mySquare(4))