function forEach() {
	var self = this;

	argy(arguments)
		.ifForm('', function() {})
		.ifForm('array function', function(tasks, callback) {
			self._struct.push({ type: 'forEachArray', payload: tasks, callback: callback });
		})
		.ifForm('object function', function(tasks, callback) {
			self._struct.push({ type: 'forEachObject', payload: tasks, callback: callback });
		})
		.ifForm('string function', function(tasks, callback) {
			self._struct.push({ type: 'forEachLateBound', payload: tasks, callback: callback });
		})
		.ifForm('number function', function(max, callback) {
			self._struct.push({ type: 'forEachRange', min: 1, max: max, callback: callback });
		})
		.ifForm('number number function', function(min, max, callback) {
			self._struct.push({ type: 'forEachRange', min: min, max: max, callback: callback });
		})
		.ifForm('string array function', function(output, tasks, callback) {
			self._struct.push({ type: 'mapArray', output: output, payload: tasks, callback: callback });
		})
		.ifForm('string object function', function(output, tasks, callback) {
			self._struct.push({ type: 'mapObject', output: output, payload: tasks, callback: callback });
		})
		.ifForm('string string function', function(output, tasks, callback) {
			self._struct.push({ type: 'mapLateBound', output: output, payload: tasks, callback: callback });
		})
		.ifFormElse(function(form) {
			throw new Error('Unknown call style for .forEach(): ' + form);
		});

	return self;
}
function forEach() {
	var self = this;

	argy(arguments)
		.ifForm('', function() {})
		.ifForm('array function', function(tasks, callback) {
			self._struct.push({ type: 'forEachArray', payload: tasks, callback: callback });
		})
		.ifForm('object function', function(tasks, callback) {
			self._struct.push({ type: 'forEachObject', payload: tasks, callback: callback });
		})
		.ifForm('string function', function(tasks, callback) {
			self._struct.push({ type: 'forEachLateBound', payload: tasks, callback: callback });
		})
		.ifForm('number function', function(max, callback) {
			self._struct.push({ type: 'forEachRange', min: 1, max: max, callback: callback });
		})
		.ifForm('number number function', function(min, max, callback) {
			self._struct.push({ type: 'forEachRange', min: min, max: max, callback: callback });
		})
		.ifForm('string array function', function(output, tasks, callback) {
			self._struct.push({ type: 'mapArray', output: output, payload: tasks, callback: callback });
		})
		.ifForm('string object function', function(output, tasks, callback) {
			self._struct.push({ type: 'mapObject', output: output, payload: tasks, callback: callback });
		})
		.ifForm('string string function', function(output, tasks, callback) {
			self._struct.push({ type: 'mapLateBound', output: output, payload: tasks, callback: callback });
		})
		.ifFormElse(function(form) {
			throw new Error('Unknown call style for .forEach(): ' + form);
		});

	return self;
}
function forEach ( ) { var self = this ; argy ( arguments ) . ifForm ( '' , function ( ) { } ) . ifForm ( 'array function' , function ( tasks , callback ) { self . _struct . push ( { type : 'forEachArray' , payload : tasks , callback : callback } ) ; } ) . ifForm ( 'object function' , function ( tasks , callback ) { self . _struct . push ( { type : 'forEachObject' , payload : tasks , callback : callback } ) ; } ) . ifForm ( 'string function' , function ( tasks , callback ) { self . _struct . push ( { type : 'forEachLateBound' , payload : tasks , callback : callback } ) ; } ) . ifForm ( 'number function' , function ( max , callback ) { self . _struct . push ( { type : 'forEachRange' , min : 1 , max : max , callback : callback } ) ; } ) . ifForm ( 'number number function' , function ( min , max , callback ) { self . _struct . push ( { type : 'forEachRange' , min : min , max : max , callback : callback } ) ; } ) . ifForm ( 'string array function' , function ( output , tasks , callback ) { self . _struct . push ( { type : 'mapArray' , output : output , payload : tasks , callback : callback } ) ; } ) . ifForm ( 'string object function' , function ( output , tasks , callback ) { self . _struct . push ( { type : 'mapObject' , output : output , payload : tasks , callback : callback } ) ; } ) . ifForm ( 'string string function' , function ( output , tasks , callback ) { self . _struct . push ( { type : 'mapLateBound' , output : output , payload : tasks , callback : callback } ) ; } ) . ifFormElse ( function ( form ) { throw new Error ( 'Unknown call style for .forEach(): ' + form ) ; } ) ; return self ; }
Run an array/object though a function
This is similar to the async native .each() function but chainable
Run an array / object though a function This is similar to the async native . each () function but chainable