"Abstraction of types which support a unary additive
inversion operation `-x`. For a [[numeric type|Numeric]],
this should return the negative of the argument value.
Implementations which also satisfy [[Summable]] should
respect the following constraint:
- `x + -x == 0`"
see (`class Integer`, `class Float`)
by ("Gavin")
shared interface Invertable<out Inverse> of Inverse
given Inverse satisfies Invertable<Inverse> {
"The additive inverse of the value, which may be expressed
as an instance of a wider type."
shared formal Inverse negativeValue;
"The value itself, expressed as an instance of the
wider type."
shared formal Inverse positiveValue;
}