"Abstraction of integral numeric types. That is, types with no fractional part, including `Integer`. The division operation for integral numeric types results in a remainder. Therefore, integral numeric types have an operation to determine the remainder of any division operation." see (`class Integer`) by ("Gavin") shared interface Integral<Other> of Other satisfies Numeric<Other> & Enumerable<Other> given Other satisfies Integral<Other> { "The remainder, after dividing this number by the given number." see (`function Numeric.divided`) shared formal Other remainder(Other other); "Determine if the number is zero." shared formal Boolean zero; "Determine if the number is one." shared formal Boolean unit; "Determine if this number is a factor of the given number." shared Boolean divides(Other other) => (other%(this of Other)).zero; }