Module Solver

module Solver: sig .. end
A generic puzzle solver

module type PUZZLE = sig .. end
A PUZZLE describes the state space of a puzzle.
module type S = functor (Puzzle : PUZZLE) -> sig .. end
Signature of the functors Solver.Make and Solver.MakeUnguided
module MakeUnguided: S 
An inefficient puzzle solver that uses depth-first search
module Make: S 
A best-first puzzle solver.