docs: function effects() {
  		extend(window, {
  			requestAnimationFrame: (function() {
  				var func =
  					window.requestAnimationFrame ||
  					window.webkitRequestAnimationFrame ||
  					window.mozRequestAnimationFrame ||
  					window.oRequestAnimationFrame ||
  					window.msRequestAnimationFrame ||
  					(function() {
  						var lastTime = 0;
  						return function(callback, element) {
  							var currTime = new Date().getTime();
  							var timeToCall = Math.max(0, 16 - (currTime - lastTime));
  							var id = window.setTimeout(function() {
  									callback(currTime + timeToCall);
  								},
  								timeToCall);
  							lastTime = currTime + timeToCall;
  							return id;
  						};
  					}());
  				return func;
  			})(),
  			cancelAnimationFrame: (function() {
  				return (
  					window.cancelAnimationFrame ||
  					window.webkitCancelAnimationFrame ||
  					window.mozCancelAnimationFrame ||
  					window.oCancelAnimationFrame ||
  					window.msCancelAnimationFrame ||
  					clearTimeout
  				);
  			}()),
  			/*
  			 * TODO: Internalize into gui.Tick
  			 * TODO: Move to MessageChannel!!!
  			 */
  			setImmediate: (function() {
  				var list = [],
  					handle = 1;
  				var name = "spiritual:emulated:setimmediate";
  				window.addEventListener("message", function(e) {
  					if (e.data === name && list.length) {
  						list.shift().apply(window);
  						e.stopPropagation();
  					}
  				}, false);
  				return function emulated(func) {
  					list.push(func);
  					window.postMessage(name, "*");
  					return handle++;
  				};
  			})()
  		});
  	}