=begin pod

=TITLE role Metamodel::MROBasedMethodDispatch

=SUBTITLE Metaobject that supports resolving inherited methods

    role Metamodel::MROBasedMethodDispatch { ... }

This role implements locating methods based on the method resolution order of
related (usually "super"/"parent") types.

=head1 Methods

=head2 method find_method

    method find_method(Metamodel::MROBasedMethodDispatch:D: $obj, $name, $no_fallback)

Given a method name, returns the method object of that name which is closest
in the method resolution order (MRO). If no method can be found, it returns a
VM-specific sentinel value (typically a low-level NULL value).

If C<:no_fallback> is supplied, fallback methods are not considered.

=head2 method find_method_qualified

    method find_method(Metamodel::MROBasedMethodDispatch:D: $obj, $type, $name)

Given a method name and a type, returns the method from that type. This is
used in calls like

    self.SomeParentClass::the_method();

=begin comment

TODO: publish_method_cache

=end comment

=end pod
