 }
 
 extension SequenceType {
+    /// Returns the first non-nil value obtained by applying `transform` to the elements of `self`
     public func mapFirst<T>(@noescape transform: (Self.Generator.Element) -> T?) -> T? {        
         for value in self {
             if let result = transform(value) { return result }

        return minElement(orderedBefore(values))
    }
    
    /// Use the given closures to extract the values for comparison. If the values 
    /// are equal compare using the next closure in the list until they are all exhausted
    public func sort(values: ((Self.Generator.Element, Self.Generator.Element) -> NSComparisonResult)...) -> [Self.Generator.Element] {

        return true
    }
    
    /// Return `true` if the predicate returns `true` for any element in `self`
    public func any(@noescape predicate: (Self.Generator.Element) -> Bool) -> Bool {
        for element in self {
            if predicate(element) { return true }
