val way :
walkable:((int * int) -> bool) ->
?diagonal:bool ->
(int * int) ->
(int * int) ->
(int * int) listval way_over :
cost:((int * int) -> Playground.number) ->
?diagonal:bool ->
(int * int) ->
(int * int) ->
(int * int) listval flow :
walkable:((int * int) -> bool) ->
?diagonal:bool ->
(int * int) ->
flowval next_step : flow -> (int * int) -> (int * int) optiontype ('state, 'move) rules = {moves : 'state -> 'move list;play : 'state -> 'move -> 'state;score : 'state -> Playground.number;my_turn : 'state -> bool;
}type ('state, 'move) opponentval thinking_ahead : int -> ('state, 'move) rules -> ('state, 'move) opponentval playing_out : int -> ('state, 'move) rules -> ('state, 'move) opponentval hinting :
('state -> 'move list -> 'move list) ->
('state, 'move) opponent ->
('state, 'move) opponentval best_move : ('state, 'move) opponent -> 'state -> 'move optiontype ('state, 'move) ponderingval settled : ('state, 'move) pondering -> boolval answer : ('state, 'move) pondering -> 'move optiontype ('mode, 'context) changeval on :
?why:string ->
'mode ->
('context -> bool) ->
'mode ->
('mode, 'context) changeval after : ?why:string -> int -> 'mode -> 'mode -> ('mode, 'context) changeval mind : 'mode -> 'mode mindval doing : 'mode mind -> 'modeval doing_for : 'mode mind -> intval deciding :
('mode, 'context) change list ->
'context ->
'mode mind ->
'mode mindval changed : 'mode mind -> string optionval modes : ('mode, 'context) change list -> 'mode listval links : ('mode, 'context) change list -> ('mode * string * 'mode) listtype ('world, 'senses, 'intent) bottype ('senses, 'intent) playingval bot :
senses:('senses option -> 'world -> 'senses) ->
('senses -> 'intent) ->
('world, 'senses, 'intent) botval reacting_in :
int ->
('world, 'senses, 'intent) bot ->
('world, 'senses, 'intent) botval deciding_every :
int ->
('world, 'senses, 'intent) bot ->
('world, 'senses, 'intent) botval playing : 'intent -> ('senses, 'intent) playingval thinks :
('world, 'senses, 'intent) bot ->
'world ->
('senses, 'intent) playing ->
'intent * ('senses, 'intent) playingval noticed : ('senses, 'intent) playing -> 'senses option