'Take a whole bunch of intermediate values and smushes them together
:param new_stashes:         The dict of stashes that will be modified by this operation
:param new_active:          One of the lists in new_stashes that is being actively ticked
:param a:                   The state that just got ticked
:param successor_stashes:   A dict of the stashs and their states that were created by stepping the state a.'

def _record_step_results(self, new_stashes, new_active, successor_stashes):

    if self._hierarchy:
        for s in successor_stashes.get('active', []):
            self._hierarchy.add_state(s)
        self._hierarchy.simplify()
    if (len(self._hooks_filter) == 0):
        new_active.extend(successor_stashes.get('active', []))
    else:
        for state in successor_stashes.get('active', []):
            self._apply_filter_hooks(state, new_stashes, new_active)
    if self.save_unconstrained:
        new_stashes['unconstrained'] += successor_stashes.get('unconstrained', [])
    if self.save_unsat:
        new_stashes['unsat'] += successor_stashes.get('unsat', [])
    for key in successor_stashes:
        if (key not in ('unconstrained', 'unsat', 'active')):
            new_stashes[key].extend(successor_stashes[key])
