20 lines
708 B
TypeScript
20 lines
708 B
TypeScript
import { $reflect } from '../core/$reflect.js'
|
|
import { Dependencies } from '../interfaces/type.js'
|
|
|
|
// unaryMinus dep is just for the experiment
|
|
// FIXME: the typescript plugin should resolve Dependencies<'multiply' | 'unaryMinus', T>
|
|
export const square = $reflect(<T>(dep: Dependencies<'multiply' | 'unaryMinus', T>): (a: T) => T =>
|
|
z => dep.multiply(z, z)
|
|
)
|
|
|
|
// export const square2 = function $reflect<T>(dep: Dependencies<'multiply' | 'unaryMinus', T>) {
|
|
// return (z: T) => dep.multiply(z, z)
|
|
// }
|
|
|
|
// export const square = $reflect(<T>(dep: {
|
|
// multiply: (a: T, b: T) => T,
|
|
// unaryMinus: (x: T) => T, // just for the experiment
|
|
// }): (a: T) => T =>
|
|
// z => dep.multiply(z, z)
|
|
// )
|