 //  Copyright © 2015 0x7fffffff. All rights reserved.
 //
 
-import Swift
-import Foundation
-
-public struct CountedSet<T: Hashable>: SetAlgebraType {
+public struct CountedSet<T : Hashable> : SetAlgebraType {
     typealias Element = T
     typealias Index = SetIndex<Element>
     typealias GeneratorType = SetGenerator<Element>
 
     private var backingDictionary = [Element : Int]()
 
-    public var count: Int {
+    public var count: CountedSet.Index.Distance {
         return backingDictionary.count
     }
 

        for member in sequence {
            insert(member)
        }
    }

    public func contains(member: CountedSet.Element) -> Bool {

        // yay protocol conformance
    }

    public init(object: Element) {
        insert(object)
    }

    public init(countedSet: CountedSet<Element>) {
        backingDictionary = countedSet.backingDictionary
    }

    public init(arrayLiteral elements: CountedSet.Element...) {
