sig
  val runcmd : string -> int
  val runcmdf : ('a, unit, string, int) format4 -> 'a
  val read_file : string -> string
  val write_file : string -> string -> unit
  val read_from_cmd : string -> int * string
  val read_from_cmdf : ('a, unit, string, int * string) format4 -> 'a
  val env : string -> string
  val env_opt : string -> string option
  type 'a cmdstate
  val code : 'Godi_script.cmdstate -> int
  val result : 'Godi_script.cmdstate -> 'a option
  val return_code : int -> 'Godi_script.cmdstate -> 'Godi_script.cmdstate
  val return_result :
    'a option -> 'Godi_script.cmdstate -> 'Godi_script.cmdstate
  val initial_state : unit -> 'Godi_script.cmdstate
  type 'a cmdlet = 'Godi_script.cmdstate -> 'Godi_script.cmdstate
  val cmd : string -> 'Godi_script.cmdlet
  val cmdf : ('a, unit, string, 'Godi_script.cmdlet) format4 -> 'a
  val cmd_output : string -> string Godi_script.cmdlet
  val cmdf_output :
    ('a, unit, string, string Godi_script.cmdlet) format4 -> 'a
  val set_code : int -> 'Godi_script.cmdlet
  val set_code_from :
    ('Godi_script.cmdstate -> int) -> 'Godi_script.cmdlet
  val set_bool_code : bool -> 'Godi_script.cmdlet
  val set_bool_code_from :
    ('Godi_script.cmdstate -> bool) -> 'Godi_script.cmdlet
  val ( &- ) :
    'Godi_script.cmdlet -> 'Godi_script.cmdlet -> 'Godi_script.cmdlet
  val ( |- ) :
    'Godi_script.cmdlet -> 'Godi_script.cmdlet -> 'Godi_script.cmdlet
  val ignore_code : 'Godi_script.cmdlet -> 'Godi_script.cmdlet
  val eval : 'Godi_script.cmdlet -> 'a option
  val eval_test : 'Godi_script.cmdlet -> bool
  val log : string -> unit
  val logf : ('a, unit, string, unit) format4 -> 'a
  type c_env = {
    c_incdirs : string list;
    c_libdirs : string list;
    c_libs : string list;
    c_flags : string list;
    ld_flags : string list;
    elf_rpath : bool;
    config_script : string option;
    godi_deps : string list;
  }
  val create_test_whether_c_function_exists : string -> string
  val c_compile_test :
    Godi_script.c_env -> string -> string Godi_script.cmdlet
  val run_test : string Godi_script.cmdlet
  val find_c_library :
    ?godi_deps:string list ->
    ?pref_incdir:string ->
    ?pref_libdir:string ->
    ?c_flags:string list ->
    ?ld_flags:string list ->
    ?inc_name:string ->
    libs:string list ->
    test:(Godi_script.c_env -> Godi_script.c_env option) ->
    unit -> Godi_script.c_env Godi_script.cmdlet
  val print_c_result :
    file:string -> prefix:string -> Godi_script.c_env -> unit
  val main_c_finder :
    ?godi_deps:string list Pervasives.ref ->
    ?pref_incdir:string option Pervasives.ref ->
    ?pref_libdir:string option Pervasives.ref ->
    ?c_flags:string list Pervasives.ref ->
    ?ld_flags:string list Pervasives.ref -> unit -> unit
end