code: public List<SyntacticCategory> getArgumentList() {
      if (isAtomic()) {
        return Lists.newArrayList();
      } else {
        List<SyntacticCategory> args = getReturn().getArgumentList();
        args.add(getArgument());
        return args;
      }
    }
docs: Gets the sequence of arguments that this category accepts. Note
  that the returned arguments themselves may be functional types.
  
  The sequence is returned with the first required argument at the
  end of the list.
  
  @return