Reason · Reason lets you write simple, fast and quality type safe code while leveraging both the JavaScript & OCaml ecosystems.

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

AltStyle によって変換されたページ (->オリジナル) /