sig
  type lua_state
  type lua_value =
      Lua_Table of Ocamlua.lua_table
    | Lua_Nil
    | Lua_String of string
    | Lua_Number of float
    | Lua_Boolean of bool
    | Lua_Closure of Ocamlua.lua_closure
  and lua_table = (Ocamlua.lua_value * Ocamlua.lua_value) list
  and lua_closure = Ocamlua.lua_value -> Ocamlua.lua_value
  val init_state : unit -> Ocamlua.lua_state
  external load_file : Ocamlua.lua_state -> string -> unit
    = "ocamlua_load_file"
  external call :
    Ocamlua.lua_state ->
    string -> Ocamlua.lua_value list -> Ocamlua.lua_value = "ocamlua_call"
  external eval_string : Ocamlua.lua_state -> string -> unit
    = "ocamlua_eval_string"
  val table_of_list : Ocamlua.lua_value list -> Ocamlua.lua_value
  val list_of_table : Ocamlua.lua_table -> Ocamlua.lua_value list
  type internal_error_code =
      GC_metamethod of string
    | Err_message_handler of string
    | Out_of_memory
  exception No_such_method of string
  exception Syntax_error of string
  exception Runtime_error of string
  exception Internal_error of Ocamlua.internal_error_code
  exception Bad_value
  exception No_such_file of string
end