    "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;

    }