     }
     
     /// EZSE: Intersection of self and the input arrays.
-    func intersection(values: [Element]...) -> Array {
+    public func intersection(values: [Element]...) -> Array {
         var result = self
         var intersection = Array()
         

    }
}

func ==<T: Equatable>(lhs: [T]?, rhs: [T]?) -> Bool {
    switch (lhs,rhs) {
    case (.Some(let lhs), .Some(let rhs)):
        return lhs == rhs

    }
    
    /// EZSE: Prepends an object to the array.
    public mutating func insertAsFirst(newElement: Element) {
        insert(newElement, atIndex: 0)
    }
}
