anchor.diff:  	}
   
   	/**
  -	* 	@header _.memoize(function, [hashFunction]) : any
  +	* 	@header _.memoize(function, [hashFunction]) : function
   	*	@hint Memoizes a given function by caching the computed result. Useful for speeding up slow-running computations. If passed an optional hashFunction, it will be used to compute the hash key for storing the result, based on the arguments to the original function. The default hashFunction just uses the first argument to the memoized function as the key.
   	* 	@example fibonacci = _.memoize(function(n) {  return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2); });
   	*/
  -	public any function memoize(func, hasher) {
  +	public function function memoize(func, hasher) {
   		var memo = {};
   		if (!structKeyExists(arguments, 'hasher')) {
   			arguments.hasher = function(x) {
  
positive.code: 		Returns a function, that, when invoked, will only be triggered at most once
  		during a given window of time.
    	*/
  	public any function throttle(func, wait) {
  		// TODO
  		return;
  	}
  
negative.code: 	* 	@hint Returns a function that, as long as it continues to be invoked, will not be triggered. The function will be called after it stops being called for N milliseconds. If immediate is passed, trigger the function on the leading edge, instead of the trailing. (Immediate requires a Wait cooldown period beteween calls.)
  	* 	@example keepCalm = _.debounce(function(){}, 300, true);<br/>for (var i = 0; i<10; i++){ keepCalm(); }<br/>=>//function argument is called only once
  	*/
  	public function function debounce(func, wait, immediate = false) {
  		var threadNameBase = '_debounced_' & createUUID() & '_';
  		var threadCount = 0;
  		var threadName = '_debounced_x';
  