 		else if isFunction list
 			iter = list
 		else
-			return Promise.reject new Error 'wrong argument type: ' + list
+			return throw new TypeError 'wrong argument type: ' + list
 
 		utils.end ?= {}
 

	###*
	 * Throw an error to break the program.
	 * @param  {Any} err
	###
	throw: (err) ->
		setTimeout -> err

		else if fns.length > 1
			iter = genIter fns
		else
			return throw new TypeError 'wrong argument type: ' + fn

		utils.end ?= {}

