Sourcetype ('state, 'move) game = {moves : 'state -> 'move list;play : 'state -> 'move -> 'state;score : 'state -> float;max_to_play : 'state -> bool;
} Sourcetype 'move result = {value : float;best : 'move option;nodes : int;children : ('move * float) list;
} Sourceval alphabeta :
?leaf:('state -> alpha:float -> beta:float -> float) ->
('state, 'move) game ->
depth:int ->
'state ->
'move result