 	public func contains(element: Element) -> Bool {
 		return values[element] != nil
 	}
-	
+
 	public mutating func insert(element: Element) {
 		values[element] = Unit()
 	}
-	
+
 	public mutating func remove(element: Element) {
 		values.removeValueForKey(element)
 	}

	public typealias IndexType = DictionaryIndex<Element, Unit>
	public var startIndex: IndexType { return values.startIndex }
	public var endIndex: IndexType { return values.endIndex }
	
	public subscript(v: ()) -> Element {
	get { return values[values.startIndex].0 }
	set { insert(newValue) }
	}
	
	public subscript(index: IndexType) -> Element {
		return values[index].0
	}

extension Set: Printable {
	public var description: String {
		if self.count == 0 { return "{}" }

		let joined = join(", ", map(toString))
		return "{ \(joined) }"
	}
