The Driver (part 2) We use the "shell" module of Ocaml, since it looks a lot like writing shell scripts with flexible, argument processing, I/O and exception handling. It is pretty straightforward: ... call [cmd "ocamlc" ["-pp"; homedir ^ "/mkc-fe -impl"; "-o"; runfile; "-I"; homedir; "-I"; "frontc"; "frontc.cma"; "be.cmo"; "-impl"; makefile ]]; Unix.chmod runfile 0o700; call ~stdout:(to_file cfile) [cmd runfile []]; call [cmd "gcc" ["-O2"; "-o"; outfile; cfile]]; Unix.chmod outfile 0o755; ... Look familliar?