             }
 
             throw new Error();
-
-            return null;
         }
 
         public function foldLeft(callback:Function, initial:*):*

        }

        /**
         * Returns first item in Stream
         * Equivalent to expression: stream[0]
         */

            return source.length > 0 ? source[0] : null;
        }

        /**
         * Set first item
         * @param item
         */
        public function set first(item:*):void
        {
            source[0] = item;
        }

        public function fold(...rest):*
        {
            if (rest.length == 0)
