sig
  type command = Libs.Compilers.command
  val string_of_command : command -> string
  val command_for_exec : command -> string * string array
  type package_option =
      [ `dllpath_all
      | `dllpath_pkg of string
      | `dontlink of string
      | `ignore_error
      | `linkpkg
      | `package of string
      | `passopt of string list
      | `ppopt of string list
      | `predicates of string list
      | `syntax of string
      | `verbose ]
  type warning =
      [ `comments of bool
      | `deprecated of bool
      | `fragile_match of bool
      | `misc of bool
      | `non_unit of bool
      | `omitted_labels of bool
      | `other_unused_var of bool
      | `overridden_field of bool
      | `overridden_methods of bool
      | `partial_applications of bool
      | `partial_match of bool
      | `unused_match of bool
      | `unused_var of bool ]
  type compiler_option =
      [ `I of string list
      | `c
      | `cc of string
      | `cclib of string list
      | `ccopt of string list
      | `config
      | `custom
      | `debug
      | `dinstr
      | `dlambda
      | `dllib of string
      | `dllpath of string
      | `dparsetree
      | `drawlambda
      | `dtypes
      | `file of string
      | `for_pack of string
      | `g
      | `i
      | `impl of string
      | `include_dir of string list
      | `intf of string
      | `intf_suffix of string
      | `labels
      | `library
      | `linkall
      | `make_runtime
      | `noassert
      | `noautolink
      | `nolabels
      | `nopervasives
      | `nostdlib
      | `of string
      | `output of string
      | `output_obj
      | `pack
      | `pp of string
      | `principal
      | `rectypes
      | `thread
      | `unsafe
      | `use_prims of string
      | `use_runtime of string
      | `v
      | `verbose
      | `version
      | `vmthread
      | `warn_error of warning list
      | `warnings of warning list
      | `where ]
  type interpreter_option =
      [ `I of string list
      | `dinstr
      | `dlambda
      | `dparsetree
      | `drawlambda
      | `file of string
      | `init of string
      | `labels
      | `noassert
      | `nolabels
      | `noprompt
      | `nostdlib
      | `principal
      | `rectypes
      | `unsafe
      | `version
      | `warn_error of warning list
      | `warnings of warning list ]
  val all_warnings : warning list
  val ocamlc :
    ?batteries:bool ->
    ?package:package_option list ->
    ?options:compiler_option list -> string list -> command
  val ocamlopt :
    ?batteries:bool ->
    ?package:package_option list ->
    ?options:compiler_option list -> string list -> command
  val ocaml :
    ?batteries:bool ->
    ?options:interpreter_option list -> string list -> command
end