code: function bind(document, callback){
  	var Node = getNodeConstructor(document);
  
  	if(listeningDocs.indexOf(document) === -1) {
  		if(!Node[_over]) {
  			overrides.forEach(function(override){
  				var res = override(Node, document);
  				if(typeof res !== "undefined") {
  					overrideTeardowns.push(res);
  				}
  			});
  			overrideTeardowns.push(function(){
  				Node[_over] = undefined;
  			});
  		}
  		markAsInDocument(document.documentElement);
  		listeningDocs.push(document);
  	}
  
  	Node[_over] = true;
  	scheduler.register(document, callback);
  }
docs: @module dom-patch/patch patch
  
  Get patches for a Document and callback
  whenever an array of patches are available.
  
  @param {document} document
  @param {Function} callback