    "Abstraction of [[numeric|Numeric]] types representing
     scalar values with a [[total order|Comparable]],
     including the built-in numeric types [[Integer]] and
     [[Float]]."
    see (`class Integer`, `class Float`)
    by ("Gavin")
    shared interface Scalar<Other> of Other
            satisfies Numeric<Other> & Comparable<Other> &
                      Number
            given Other satisfies Scalar<Other> {

        "The magnitude of this number."
        shared actual formal Other magnitude;

        "The fractional part of the number, after truncation
         of the integral part. For integral numeric types,
         the fractional part is always zero."
        shared actual formal Other fractionalPart;

        "The integral value of the number after truncation
         of the fractional part. For integral numeric types,
         the integral value of a number is the number
         itself."
        shared actual formal Other wholePart;

    }