code: function(ms) {
        var fn = this;
        var args = multiArgs(arguments).slice(1);
        setDelay(fn, ms, fn, fn, args);
        return fn;
      }
docs: *
  @method delay([ms] = 0, [arg1], ...)
  @returns Function
  @short Executes the function after <ms> milliseconds.
  @extra Returns a reference to itself. %delay% is also a way to execute non-blocking operations that will wait until the CPU is free. Delayed functions can be canceled using the %cancel% method. Can also curry arguments passed in after <ms>.
  @example
  
  (function(arg1) {
  // called 1s later
  }).delay(1000, 'arg1');
  
  *