is `func' overloaded, polymorphic, or neither? Note that the
parameter types do not change but that the typ signature of the whole
call does change. Does the O/P/N status depend on whether the
specification is

func (T: x) -> T { ... }
func (T: x, T: y) -> T { ... }

or

func (T: x, optional T: y) -> T { ... }

?

Ada allows default parameters, while some LISPs allow both defaults
and genuinely optional parmaeters. Does that make a difference?