functor
(
Puzzle
:
PUZZLE
)
->
sig
val
solve :
Puzzle
.state
->
Puzzle
.move list option
end