BatOo

`sig
module Oo :
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.Oo.Internal.tag
val new_method : BatOo.Oo.Internal.table -> BatOo.Oo.Internal.label
val new_variable : BatOo.Oo.Internal.table -> string -> int
val new_methods_variables :
BatOo.Oo.Internal.table ->
string array -> string array -> BatOo.Oo.Internal.label array
val get_variable : BatOo.Oo.Internal.table -> string -> int
val get_variables :
BatOo.Oo.Internal.table -> string array -> int array
val get_method_label :
BatOo.Oo.Internal.table -> string -> BatOo.Oo.Internal.label
val get_method_labels :
BatOo.Oo.Internal.table ->
string array -> BatOo.Oo.Internal.label array
val get_method :
BatOo.Oo.Internal.table ->
BatOo.Oo.Internal.label -> BatOo.Oo.Internal.meth
val set_method :
BatOo.Oo.Internal.table ->
BatOo.Oo.Internal.label -> BatOo.Oo.Internal.meth -> unit
val set_methods :
BatOo.Oo.Internal.table -> BatOo.Oo.Internal.label array -> unit
val narrow :
BatOo.Oo.Internal.table ->
string array -> string array -> string array -> unit
val widen : BatOo.Oo.Internal.table -> unit
val add_initializer :
BatOo.Oo.Internal.table ->
(BatOo.Oo.Internal.obj -> unit) -> unit
val dummy_table : BatOo.Oo.Internal.table
val create_table : string array -> BatOo.Oo.Internal.table
val init_class : BatOo.Oo.Internal.table -> unit
val inherits :
BatOo.Oo.Internal.table ->
string array ->
string array ->
string array ->
BatOo.Oo.Internal.t *
(BatOo.Oo.Internal.table -> BatOo.Oo.Internal.obj -> Obj.t) *
BatOo.Oo.Internal.t * BatOo.Oo.Internal.obj ->
bool -> Obj.t array
val make_class :
string array ->
(BatOo.Oo.Internal.table -> Obj.t -> BatOo.Oo.Internal.t) ->
BatOo.Oo.Internal.t *
(BatOo.Oo.Internal.table -> Obj.t -> BatOo.Oo.Internal.t) *
(Obj.t -> BatOo.Oo.Internal.t) * Obj.t
type init_table = CamlinternalOO.init_table
val make_class_store :
string array ->
(BatOo.Oo.Internal.table -> BatOo.Oo.Internal.t) ->
BatOo.Oo.Internal.init_table -> unit
val dummy_class :
string * int * int ->
BatOo.Oo.Internal.t *
(BatOo.Oo.Internal.table -> Obj.t -> BatOo.Oo.Internal.t) *
(Obj.t -> BatOo.Oo.Internal.t) * Obj.t
val copy : (< .. > as 'a) -> 'a
val create_object :
BatOo.Oo.Internal.table -> BatOo.Oo.Internal.obj
val create_object_opt :
BatOo.Oo.Internal.obj ->
BatOo.Oo.Internal.table -> BatOo.Oo.Internal.obj
val run_initializers :
BatOo.Oo.Internal.obj -> BatOo.Oo.Internal.table -> unit
val run_initializers_opt :
BatOo.Oo.Internal.obj ->
BatOo.Oo.Internal.obj ->
BatOo.Oo.Internal.table -> BatOo.Oo.Internal.obj
val create_object_and_run_initializers :
BatOo.Oo.Internal.obj ->
BatOo.Oo.Internal.table -> BatOo.Oo.Internal.obj
external send :
BatOo.Oo.Internal.obj ->
BatOo.Oo.Internal.tag -> BatOo.Oo.Internal.t = "%send"
external sendcache :
BatOo.Oo.Internal.obj ->
BatOo.Oo.Internal.tag ->
BatOo.Oo.Internal.t -> int -> BatOo.Oo.Internal.t = "%sendcache"
external sendself :
BatOo.Oo.Internal.obj ->
BatOo.Oo.Internal.label -> BatOo.Oo.Internal.t = "%sendself"
external get_public_method :
BatOo.Oo.Internal.obj ->
BatOo.Oo.Internal.tag -> BatOo.Oo.Internal.closure
= "caml_get_public_method" "noalloc"
type tables = CamlinternalOO.tables
val lookup_tables :
BatOo.Oo.Internal.tables ->
BatOo.Oo.Internal.closure array -> BatOo.Oo.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.Oo.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.Oo.Internal.params
type stats =
CamlinternalOO.stats = {
classes : int;
methods : int;
inst_vars : int;
}
val stats : unit -> BatOo.Oo.Internal.stats
end
end
end`