type Dispatcher … // NewDispatcher returns an empty Dispatcher instance. func NewDispatcher() Dispatcher { … } // ExtendDispatcher returns a Dispatcher which inherits the overloads of its parent, and // provides an isolation layer between built-ins and extension functions which is useful // for forward compatibility. func ExtendDispatcher(parent Dispatcher) Dispatcher { … } type overloadMap … type defaultDispatcher … // Add implements the Dispatcher.Add interface method. func (d *defaultDispatcher) Add(overloads ...*functions.Overload) error { … } // FindOverload implements the Dispatcher.FindOverload interface method. func (d *defaultDispatcher) FindOverload(overload string) (*functions.Overload, bool) { … } // OverloadIds implements the Dispatcher interface method. func (d *defaultDispatcher) OverloadIds() []string { … }