in reply to Overriding built-ins

Usually you want to use the same prototype for an overriding function as the builtin has. If prototype("CORE::foo") is not defined, foo is usually not overridable (though require is an exception).