sig   val copy : (< .. > as 'a) -> 'a   external id : < .. > -> int = "%field1"   val new_method : string -> CamlinternalOO.tag   val public_method_label : string -> CamlinternalOO.tag   module Internal :     sig       type tag = CamlinternalOO.tag       type label = CamlinternalOO.label       type table = CamlinternalOO.table       type meth = CamlinternalOO.meth       type t = CamlinternalOO.t       type obj = CamlinternalOO.obj       type closure = CamlinternalOO.closure       val public_method_label : string -> BatOo.Internal.tag       val new_method : BatOo.Internal.table -> BatOo.Internal.label       val new_variable : BatOo.Internal.table -> string -> int       val new_methods_variables :         BatOo.Internal.table ->         string array -> string array -> BatOo.Internal.label array       val get_variable : BatOo.Internal.table -> string -> int       val get_variables : BatOo.Internal.table -> string array -> int array       val get_method_label :         BatOo.Internal.table -> string -> BatOo.Internal.label       val get_method_labels :         BatOo.Internal.table -> string array -> BatOo.Internal.label array       val get_method :         BatOo.Internal.table -> BatOo.Internal.label -> BatOo.Internal.meth       val set_method :         BatOo.Internal.table ->         BatOo.Internal.label -> BatOo.Internal.meth -> unit       val set_methods :         BatOo.Internal.table -> BatOo.Internal.label array -> unit       val narrow :         BatOo.Internal.table ->         string array -> string array -> string array -> unit       val widen : BatOo.Internal.table -> unit       val add_initializer :         BatOo.Internal.table -> (BatOo.Internal.obj -> unit) -> unit       val dummy_table : BatOo.Internal.table       val create_table : string array -> BatOo.Internal.table       val init_class : BatOo.Internal.table -> unit       val inherits :         BatOo.Internal.table ->         string array ->         string array ->         string array ->         BatOo.Internal.t *         (BatOo.Internal.table -> BatOo.Internal.obj -> Obj.t) *         BatOo.Internal.t * BatOo.Internal.obj -> bool -> Obj.t array       val make_class :         string array ->         (BatOo.Internal.table -> Obj.t -> BatOo.Internal.t) ->         BatOo.Internal.t *         (BatOo.Internal.table -> Obj.t -> BatOo.Internal.t) *         (Obj.t -> BatOo.Internal.t) * Obj.t       type init_table = CamlinternalOO.init_table       val make_class_store :         string array ->         (BatOo.Internal.table -> BatOo.Internal.t) ->         BatOo.Internal.init_table -> unit       val dummy_class :         string * int * int ->         BatOo.Internal.t *         (BatOo.Internal.table -> Obj.t -> BatOo.Internal.t) *         (Obj.t -> BatOo.Internal.t) * Obj.t       val copy : (< .. > as 'a) -> 'a       val create_object : BatOo.Internal.table -> BatOo.Internal.obj       val create_object_opt :         BatOo.Internal.obj -> BatOo.Internal.table -> BatOo.Internal.obj       val run_initializers :         BatOo.Internal.obj -> BatOo.Internal.table -> unit       val run_initializers_opt :         BatOo.Internal.obj ->         BatOo.Internal.obj -> BatOo.Internal.table -> BatOo.Internal.obj       val create_object_and_run_initializers :         BatOo.Internal.obj -> BatOo.Internal.table -> BatOo.Internal.obj       external send :         BatOo.Internal.obj -> BatOo.Internal.tag -> BatOo.Internal.t         = "%send"       external sendcache :         BatOo.Internal.obj ->         BatOo.Internal.tag -> BatOo.Internal.t -> int -> BatOo.Internal.t         = "%sendcache"       external sendself :         BatOo.Internal.obj -> BatOo.Internal.label -> BatOo.Internal.t         = "%sendself"       external get_public_method :         BatOo.Internal.obj -> BatOo.Internal.tag -> BatOo.Internal.closure         = "caml_get_public_method" [@@noalloc]       type tables = CamlinternalOO.tables       val lookup_tables :         BatOo.Internal.tables ->         BatOo.Internal.closure array -> BatOo.Internal.tables       type impl =         CamlinternalOO.impl =           GetConst         | GetVar         | GetEnv         | GetMeth         | SetVar         | AppConst         | AppVar         | AppEnv         | AppMeth         | AppConstConst         | AppConstVar         | AppConstEnv         | AppConstMeth         | AppVarConst         | AppEnvConst         | AppMethConst         | MethAppConst         | MethAppVar         | MethAppEnv         | MethAppMeth         | SendConst         | SendVar         | SendEnv         | SendMeth         | Closure of BatOo.Internal.closure       type params =         CamlinternalOO.params = {         mutable compact_table : bool;         mutable copy_parent : bool;         mutable clean_when_copying : bool;         mutable retry_count : int;         mutable bucket_small_size : int;       }       val params : BatOo.Internal.params       type stats =         CamlinternalOO.stats = {         classes : int;         methods : int;         inst_vars : int;       }       val stats : unit -> BatOo.Internal.stats     end end