I have been labouring under the mis-apprehension that the global Path.t's within the typed AST are sufficient to identify all dependencies of a module. But I think the following case illustrates differently: consider a toplevel definition: let v = M.f () where M.f: unit -> N.t the dependency on M is clear but because the value v is not inspected in any way, the type N.t is not a dependency unless going, say, beyond the type AST description and iterating over the term's exp_type: typexpr looking for global Path.t's. Is this reasonable or is there a better way of going about identifying ALL dependencies?