type 's initpg =
('s * ('s -> 's list) * ('s -> int) * ('s -> bool) * ('s -> string))
* (int option * int option * ('s -> 's -> int) option)type 's initpg_solution = 's -> bool optiontype 's initpg_strategy = 's -> 's optionval get_compact_initpg : 's initpg -> ('s -> bool) -> ('s * int) initpgval get_compact_initpg_by_player : 's initpg -> bool -> ('s * int) initpgval get_escaped_initpg : 's initpg -> 'a -> ('s * 'a) initpgval get_int_cached_initpg :
's initpg ->
('s -> int -> unit) ->
int initpg * ('s -> int) * (int -> 's)type explicit_pg = (int * int * int array * string) arrayval print_explicit_pg : explicit_pg -> (string -> unit) -> unittype explicit_pg_solution = int arraytype explicit_pg_strategy = int array