Rather than speficying return types as a type transformation from
parameter types, assume that all the type info can be
inferred from the first parameter, and directly specify the
implementation types. Vastly simplifies the declaration of
implementation types.
Together with any auxiliary functions needed for that goal. Also
strives to ensure the same functions are being defined for
number and for `Complex<T>`.
This PR is an effort to address #1. It removes all boilerplate
from individual implementation files, and moves it into
a small, fixed section in the single `all.ts` module for each
type that collects up all of the implementations relating
to that type.
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Reviewed-on: #2
A first pass at specifying some implementations in TypeScript
that actually compiles. It doesn't do anything, as installing
types and operation specifications are currently dummy operations,
but they are all invoked.