functor
(
Puzzle
:
PUZZLE
)
->
sig
val
run :
Puzzle
.state
->
Puzzle
.move list
->
unit
end