let which ?(path) fln =
let real_path =
match path with
None ->
path_of_string (Sys.getenv "PATH")
| Some x ->
x
in
let ctst x =
test (And(Is_exec,Not(Is_dir)))
(concat x fln)
in
let which_path =
List.find ctst real_path
in
concat which_path fln