Sourcetype 'node problem = {neighbors : 'node -> ('node * float) list;goal : 'node -> bool;estimate : 'node -> float;
} Sourcetype 'node result = {path : 'node list;cost : float;visited : 'node list;
} Sourceval downhill : 'node problem -> ('node * float) list -> 'node -> 'node option Sourceval manhattan : (int * int) -> (int * int) -> float