      *                          <code>reductionFunction(array[0], array[1])</code>
      * </listing>
      */
-    public static function reduce(array:Array, reductionFunction:Function, initialValue:* = null):*
+    public static function reduce(array:*, reductionFunction:Function, initialValue:* = null):*
     {
         var i:int;
         var acc:*;

     *                     that cast to <code>Boolean</code> as <code>true</code>.
     * @return The number of calls to <code>boolFunction</code> that returned <code>true</code>
     */
    public static function count(array:Array, boolFunction:Function = null):int
    {
        var i:int;
        var result:int;

     *                     assumes 0.
     * @return The first member to return true, or null if none did.
     */
    public static function getFirst(array:*, boolFunction:Function, startIndex:int = 0):*
    {
        var index:int = indexOf(array, boolFunction, startIndex);
        return index >= 0 ? array[index] : null;
