Provide a framework to make backtracking easy.