code: def get_param_names(model_obj):
      
      # Get the index coefficient names
      all_names = deepcopy(model_obj.ind_var_names)
      # Add the intercept names if any exist
      if model_obj.intercept_names is not None:
          all_names = model_obj.intercept_names + all_names
      # Add the shape names if any exist
      if model_obj.shape_names is not None:
          all_names = model_obj.shape_names + all_names
      # Add the nest names if any exist
      if model_obj.nest_names is not None:
          all_names = model_obj.nest_names + all_names
      return all_names
docs: Extracts all the names to be displayed for the estimated parameters.
  
      Parameters
      ----------
      model_obj : an instance of an MNDC object.
          Should have the following attributes:
          `['ind_var_names', 'intercept_names', 'shape_names', 'nest_names']`.
  
      Returns
      -------
      all_names : list of strings.
          There will be one element for each estimated parameter. The order of
          the parameter names will be
          `['nest_parameters', 'shape_parameters', 'outside_intercepts',
            'index_coefficients']`.