The most troubling example is found in `src/complex/arithmetic.ts`,
where (as one can see by carefully screening the output when you
run src/index.ts) deepkit reports the type of
```
Dependencies<'absquare', X> & Dependencies<'add', Returns<'absquare', X>>
```
to be `any` (look for the line starting "Because { kind: 1," in the output;
kind: 1 is deepkit's code for `any`. It doesn't even give a syntactic
description of the type as say the intersection of two instances of the
Dependencies generic type, which would be good enough (if we got the
string parameters to the generics).
Adds a new subdirectory `interfaces` where standard interfaces
are defined. Additional interfaces for a given operation can
be added with an `AliasOf` type operator. Provides type
operators that give the return type, full function type, and
the type of a dependency on, a given operator.
Resolves#6.
Co-authored-by: Glen Whitney <glen@studioinfinity.org>
Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
Reviewed-on: #8