'Single RNN step.  Equivalently, single-time-step sampled actions.'

def single_step(self, prev, cur, greedy=False):

    (prev_internal_state, prev_actions, _, _, _, _) = prev
    (obs, actions) = cur
    (output, next_state) = self.core(obs, prev_internal_state, prev_actions)
    (actions, logits, log_probs, entropy, self_kl) = self.sample_actions(output, actions=actions, greedy=greedy)
    return (next_state, tuple(actions), tuple(logits), tuple(log_probs), tuple(entropy), tuple(self_kl))
