code: public HeadedSyntacticCategory getFinalReturnType() {
      HeadedSyntacticCategory cat = this;
      while (!cat.isAtomic()) {
        cat = cat.getReturnType();
      }
      return cat;
    }
docs: Gets the atomic category that is reached by iterating
  getReturnType() until the category is no longer functional.
  
  @return