The setGroupGeneric function behaves like setGeneric
  except that it constructs a group generic function, differing in two
  ways from an ordinary generic function.  First, this function cannot
  be called directly, and the body of the function created will contain
  a stop call with this information.  Second, the group generic function
  contains information about the known members of the group, used to
  keep the members up to date when the group definition changes, through
  changes in the search list or direct specification of methods, etc.
All members of the group must have the identical argument list.