val find_dependencies : prog:string ‑> args:string list ‑> working_dir:string ‑> target:string ‑> string list Async.Deferred.Or_error.tCall ocamldep to recursively find dependencies for the target compilation unit,
return a list of compilation units the target depends on in topological order.
Failure cases includes:
A compilation unit is a string representing an ml/mli module. It does not contain the extension. Example:
file compilation unit
a.mli? "a"
Stack.mli? "Stack"
/path/to/file.ml "file"
/other/file.ml "file"This function assumes that the target and all its dependencies are located under the
same directory, that is working_dir, and that an .ml and an .mli for the same module
have the same case.