functor (G : Game) ->
sig
type gameField = G.gameField
type move = G.move
val byDepth : (gameField -> float) -> int -> gameField -> move
val byTime : (gameField -> float) -> float -> gameField -> move
val byNodes : (gameField -> float) -> int -> gameField -> move
end