12.2 The Fundamental Data Structures within SolverUtils