Is it possible to specialize and give a default value for an optional parameter in a generic function, i.e:

(defgeneric foo (one &optional two))

(defmethod foo ((one number) &optional (two number)) (+ one two))

This is read as though the optional parameter has a default value of number instead of specializing on the type number. I may be missing something obvious butany help or a pointer to where this has been discussed would be greatly appreciated.

You can not specialize the optional parameters in generic functions. It would horribly complicate the CLOS type dispatch algorithm and could only reasonably apply in the case of a tie on the main parameters.