For its form of polymorphism, Groovy uses a system of
heap-allocated meta-classes and a special run-time dispatching
mechanism, which allows Java classes to be augmented with new
methods. Church's equivalent of an O-O language's 'dynamic
dispatch' mechanism is instead performed at load-time, and is
described below.