         return nil
     }
     
+    /**
+    *  Gets the first element in the array.
+    *  @param array The array to wrap.
+    *  @return First element from the array
+    */
     class func first<T>(array: T[]) -> T? {
         if array.isEmpty {
             return nil

        return self
    }
    
    func map(function: (Int, AnyObject) -> AnyObject) -> $ {
        var result: AnyObject[] = []
        for (index, elem : AnyObject) in enumerate(self.resultArray) {

        return maxVal
    }
    
    /**
    *  Merge dictionaries together and last dictionary overides the value of the key
    *  @param dictionaries The dictionaries to source from
    *  @return Merged dictionary with all of its keys and values
    */
    class func merge<T, U>(#dictionaries: Dictionary<T, U>...) -> Dictionary<T, U> {
        var result = Dictionary<T, U>()
        for dict in dictionaries {
            for (key, value) in dict {
                result[key] = value
            }
        }
        return result
    }

    /**
    *  Merge arrays together
    *  @param arrays The arrays to source from
    *  @return Array with all values merged which includes duplicates
    */
    class func merge<T>(#arrays: Array<T>...) -> Array<T> {
        var result = Array<T>()
        for arr in arrays {
            result += arr
        }
        return result
    }
    
    /**
    *  Retrieves the minimum value in an array.
    *  @param array The array to source from
    *  @return Min value from array
    */
    class func min<T : Comparable>(array: T[]) -> T? {
        var minVal = array[0]
        for elem in array {
