defgeneric
arglist normal, but no initial values or supplied-p allowed
gf options
- :declare -- declaration for whole gf, only optimize allowed by spec
- :argument-precedence-order -- lists all required args in order for dispatch
- also :documentation, :generic-function-class, :method-class, :method-combination