 
 import Foundation
 
-public struct Set<T: Hashable> : Equatable {
+public struct Set<T: Hashable> : Equatable, ArrayLiteralConvertible {
     typealias Element = T
     private var contents: [Element: Bool]
 

        return Swift.GeneratorOf {
            return generator.next()
        }
    }
}

// MARK: ArrayLiteralConvertible

extension Set : ArrayLiteralConvertible {
    public static func convertFromArrayLiteral(elements: T...) -> Set<T> {
        return Set(elements)
    }
}


    /// Returns a single value by iteratively combining each element of the Set.
    public func reduce<U>(var initial: U, combine: (U, T) -> U) -> U {
        return Swift.reduce(self, initial, combine)
    }
    
    public init(arrayLiteral elements: Element...) {
        self.init(elements)
    }
}

