docs: def _render_batch(self,
              non_fluents: NonFluents,
              states: Fluents, actions: Fluents, interms: Fluents,
              rewards: np.array,
              horizon: Optional[int] = None) -> None:
          '''Prints `non_fluents`, `states`, `actions`, `interms` and `rewards`
          for given `horizon`.
  
          Args:
              states (Sequence[Tuple[str, np.array]]): A state trajectory.
              actions (Sequence[Tuple[str, np.array]]): An action trajectory.
              interms (Sequence[Tuple[str, np.array]]): An interm state trajectory.
              rewards (np.array): Sequence of rewards (1-dimensional array).
              horizon (Optional[int]): Number of timesteps.
          '''
          if horizon is None:
              horizon = len(states[0][1])
              self._render_round_init(horizon, non_fluents)
              for t in range(horizon):
                  s = [(s[0], s[1][t]) for s in states]
                  f = [(f[0], f[1][t]) for f in interms]
                  a = [(a[0], a[1][t]) for a in actions]
                  r = rewards[t]
                  self._render_timestep(t, s, a, f, r)
              self._render_round_end(rewards)