    import ceylon.language { lt=larger, st=smaller, eq=equal }

    "The result of a comparison between two `Comparable`
     objects."
    see (`interface Comparable`)
    by ("Gavin")
    shared abstract class Comparison(shared actual String string)
            of lt | st | eq {

        //TODO: remove all these:
        shared deprecated Boolean largerThan() => this == lt;
        shared deprecated Boolean smallerThan() => this == st;
        shared deprecated Boolean equal() => this == eq;
        shared deprecated Boolean unequal() => this != eq;
        shared deprecated Boolean asLargeAs() => this != st;
        shared deprecated Boolean asSmallAs() => this != lt;

    }

    "The value is exactly equal to the given value."
    shared object equal extends Comparison("equal") {}

    "The value is smaller than the given value."
    shared object smaller extends Comparison("smaller") {}

    "The value is larger than the given value."
    shared object larger extends Comparison("larger") {}