 
 extension Range where Bound: Strideable, Bound.Stride: SignedInteger {
     public func contains(_ range: CountableRange<Bound>) -> Bool {
-        return lowerBound <= range.lowerBound && range.upperBound <= upperBound
+        return lowerBound <= range.lowerBound && range.upperBound <= upperBound || range.lowerBound == range.upperBound
     }
 
     public func contains(_ range: CountableClosedRange<Bound>) -> Bool {

    }

    public func contains(_ range: Range<Bound>) -> Bool {
        return lowerBound <= range.lowerBound && range.upperBound <= upperBound
    }

    public func contains(_ range: ClosedRange<Bound>) -> Bool {

    }

    public func contains(_ range: Range<Bound>) -> Bool {
        return lowerBound <= range.lowerBound && range.upperBound <= upperBound.advanced(by: 1) || range.lowerBound == range.upperBound
    }
}

extension ClosedRange {
    public func contains(_ range: Range<Bound>) -> Bool {
        return lowerBound <= range.lowerBound && range.upperBound <= upperBound || range.lowerBound == range.upperBound
    }

    public func contains(_ range: ClosedRange<Bound>) -> Bool {
