Generic backtracking state interface. Abstracts the differences between boolean matching and assignment tracking.
Try to advance the state with a new assignment and return true if successful.
Backtrack by removing the last state change.
Check if we've reached a successful final state.
Get the final result.
Generic backtracking state interface. Abstracts the differences between boolean matching and assignment tracking.