Implement an undo/redo manager:
push(state) — add new state, clear redo stack.undo() — return previous state.redo() — return forward state.solve(initial, ops) returns the value after each op.
Ops: { type: 'push', value }, { type: 'undo' }, { type: 'redo' }.
Sample tests