docs: function polymorph() {
  		var arg = Array.prototype.slice.call(arguments),
  			candidate = delegate(arg);
  
  		if (!candidate) {
  			throw new Error('polymorph: signature not found "' + arg.map(function(variable) {
  				return type(variable);
  			}).join(', ') + '"');
  		}
  
  		return candidate.call.apply(this, candidate.param);
  	}