class Range {

    public boolean overlaps(Range other)
    {
        checkTypeCompatibility(other);
        return this.getLow().compareTo(other.getHigh()) <= 0 &&
                other.getLow().compareTo(this.getHigh()) <= 0;
    }

    @JsonCreator public  Range(
            @JsonProperty("low") Marker low,
            @JsonProperty("high") Marker high);

}