let dep_exists dirname name =
  OS.file_exists (Options.get_file_name (OS.concat dirname name))
let dep_exists dirname name =
OS.file_exists (Options.get_file_name (OS.concat dirname name))
Deps.fst.checked
prims.fst.checked ParserDriver.fsti.checked OS.fsti.checked Options.fsti.checked JSON.fsti.checked Hashtable.fsti.checked FStar.String.fsti.checked FStar.ST.fst.checked FStar.Printf.fst.checked FStar.Pervasives.Native.fst.checked FStar.Pervasives.fsti.checked FStar.List.Tot.fst.checked FStar.List.fst.checked FStar.IO.fst.checked FStar.All.fst.checked Config.fst.checked Ast.fst.checked
Deps.fst
Prims.string OS.file_exists Prims.bool Options.get_file_name OS.concat
module Deps
open FStar.List.Tot
open FStar.IO
open FStar.All
open Ast

module H = Hashtable

type edge = string & string

type dep_graph' = list edge

type dep_graph = {
  graph: dep_graph';
  modules_with_entrypoint: list string;
  modules_with_static_assertions: list string;
  modules_with_output_types: list string;
  modules_with_out_exprs: list string;
  modules_with_extern_types: list string;
  modules_with_extern_functions: list string
}

let all_edges_from (g:dep_graph') (node:string) : Tot (list edge) =
  List.Tot.filter (fun (src, _dst) -> src = node) g

let dependencies graph modul =
  List.Tot.map snd (all_edges_from graph.graph modul)
val dep_exists : dirname: Prims.string -> name: Prims.string -> FStar.All.ML Prims.bool
dirname: Prims.string -> name: Prims.string -> FStar.All.ML Prims.bool