docs: function(types, handler, required) {
  		types.forEach(function(Type) {
  			if (gui.Type.isDefined(Type)) {
  				this._addchecks(Type.$classid, [handler]);
  				this._watches.push(Type);
  				if (required) {
  					this._needing.push(Type);
  				}
  			} else {
  				throw new TypeError("Could not register input for undefined Type");
  			}
  		}, this);
  		types.forEach(function(Type) {
  			gui.Class.descendantsAndSelf(Type, function(T) {
  				if (T.out(this.context)) { // type has been output already?
  					this._maybeinput(edb.Output.$get(T));
  				}
  			}, this);
  		}, this);
  	}