sig
type state
type move
val apply :
Solver.PUZZLE.state -> Solver.PUZZLE.move -> Solver.PUZZLE.state
val moves : Solver.PUZZLE.state -> Solver.PUZZLE.move list
val is_goal : Solver.PUZZLE.state -> bool
val equal : Solver.PUZZLE.state -> Solver.PUZZLE.state -> bool
val goodness : Solver.PUZZLE.state Util.comparator
end