 //  THE SOFTWARE.
 //
 
-extension Collection where Self == SubSequence {
-    
-    /// Returns sub-sequence of `self`.
-    @_inlineable
-    public var subSequence: SubSequence {
-        return self
-    }
-}
-
-extension Collection {
-    
-    /// Returns sub-sequence of `self`.
-    @_inlineable
-    public var subSequence: SubSequence {
-        return self as? SubSequence ?? self[startIndex..<endIndex]
-    }
-}
-
 extension Sequence where Element : Equatable {
     
     /// Return `true` if all of elements in `seq` is `x`.

    public func rotated(_ n: Int) -> ConcatBidirectionalCollection<SubSequence, SubSequence> {
        let count: Int = numericCast(self.count)
        if count == 0 {
            return self.subSequence.concat(self.subSequence)
        }
        if n < 0 {
            let _n = -n % count

    public func rotated(_ n: Int) -> ConcatBidirectionalCollection<SubSequence, SubSequence> {
        let count: Int = numericCast(self.count)
        if count == 0 {
            return self[...].concat(self[...])
        }
        if n < 0 {
            let _n = -n % count
