sig
  exception Error of string
  module GenericValue :
    sig
      type t
      val of_float :
        Llvm.lltype -> float -> Llvm_executionengine.GenericValue.t
      val of_pointer : '-> Llvm_executionengine.GenericValue.t
      val of_int32 :
        Llvm.lltype -> int32 -> Llvm_executionengine.GenericValue.t
      val of_int : Llvm.lltype -> int -> Llvm_executionengine.GenericValue.t
      val of_nativeint :
        Llvm.lltype -> nativeint -> Llvm_executionengine.GenericValue.t
      val of_int64 :
        Llvm.lltype -> int64 -> Llvm_executionengine.GenericValue.t
      val as_float :
        Llvm.lltype -> Llvm_executionengine.GenericValue.t -> float
      val as_pointer : Llvm_executionengine.GenericValue.t -> 'a
      val as_int32 : Llvm_executionengine.GenericValue.t -> int32
      val as_int : Llvm_executionengine.GenericValue.t -> int
      val as_nativeint : Llvm_executionengine.GenericValue.t -> nativeint
      val as_int64 : Llvm_executionengine.GenericValue.t -> int64
    end
  module ExecutionEngine :
    sig
      type t
      val create : Llvm.llmodule -> Llvm_executionengine.ExecutionEngine.t
      val create_interpreter :
        Llvm.llmodule -> Llvm_executionengine.ExecutionEngine.t
      val create_jit :
        Llvm.llmodule -> int -> Llvm_executionengine.ExecutionEngine.t
      val dispose : Llvm_executionengine.ExecutionEngine.t -> unit
      val add_module :
        Llvm.llmodule -> Llvm_executionengine.ExecutionEngine.t -> unit
      val remove_module :
        Llvm.llmodule ->
        Llvm_executionengine.ExecutionEngine.t -> Llvm.llmodule
      val find_function :
        string ->
        Llvm_executionengine.ExecutionEngine.t -> Llvm.llvalue option
      val run_function :
        Llvm.llvalue ->
        Llvm_executionengine.GenericValue.t array ->
        Llvm_executionengine.ExecutionEngine.t ->
        Llvm_executionengine.GenericValue.t
      val run_static_ctors : Llvm_executionengine.ExecutionEngine.t -> unit
      val run_static_dtors : Llvm_executionengine.ExecutionEngine.t -> unit
      val run_function_as_main :
        Llvm.llvalue ->
        string array ->
        (string * string) array ->
        Llvm_executionengine.ExecutionEngine.t -> int
      val free_machine_code :
        Llvm.llvalue -> Llvm_executionengine.ExecutionEngine.t -> unit
      val data_layout :
        Llvm_executionengine.ExecutionEngine.t -> Llvm_target.DataLayout.t
    end
  val initialize_native_target : unit -> bool
end