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

Reason
sig
 type t
 type raw_data = nativeint
 external repr : 'a -> Obj.t = "%identity"
 external obj : Obj.t -> 'a = "%identity"
 external magic : 'a -> 'b = "%identity"
 val is_block : Obj.t -> bool
 external is_int : Obj.t -> bool = "%obj_is_int"
 external tag : Obj.t -> int = "caml_obj_tag" [@@noalloc]
 external size : Obj.t -> int = "%obj_size"
 external reachable_words : Obj.t -> int = "caml_obj_reachable_words"
 external field : Obj.t -> int -> Obj.t = "%obj_field"
 external set_field : Obj.t -> int -> Obj.t -> unit = "%obj_set_field"
 external compare_and_swap_field : Obj.t -> int -> Obj.t -> Obj.t -> bool
  = "caml_obj_compare_and_swap"
 external is_shared : Obj.t -> bool = "caml_obj_is_shared"
 val double_field : Obj.t -> int -> float
 val set_double_field : Obj.t -> int -> float -> unit
 external raw_field : Obj.t -> int -> Obj.raw_data = "caml_obj_raw_field"
 external set_raw_field : Obj.t -> int -> Obj.raw_data -> unit
  = "caml_obj_set_raw_field"
 external new_block : int -> int -> Obj.t = "caml_obj_block"
 external dup : Obj.t -> Obj.t = "caml_obj_dup"
 external add_offset : Obj.t -> Stdlib.Int32.t -> Obj.t
  = "caml_obj_add_offset"
 external with_tag : int -> Obj.t -> Obj.t = "caml_obj_with_tag"
 val first_non_constant_constructor_tag : int
 val last_non_constant_constructor_tag : int
 val forcing_tag : int
 val cont_tag : int
 val lazy_tag : int
 val closure_tag : int
 val object_tag : int
 val infix_tag : int
 val forward_tag : int
 val no_scan_tag : int
 val abstract_tag : int
 val string_tag : int
 val double_tag : int
 val double_array_tag : int
 val custom_tag : int
 val int_tag : int
 val out_of_heap_tag : int
 val unaligned_tag : int
 module Closure :
  sig
   type info = { arity : int; start_env : int; }
   val info : Obj.t -> Obj.Closure.info
  end
 module Extension_constructor :
  sig
   type t = extension_constructor
   val of_val : 'a -> Obj.Extension_constructor.t
   val name : Obj.Extension_constructor.t -> string
   val id : Obj.Extension_constructor.t -> int
  end
 module Ephemeron :
  sig
   type obj_t = Obj.t
   type t
   val create : int -> Obj.Ephemeron.t
   val length : Obj.Ephemeron.t -> int
   val get_key : Obj.Ephemeron.t -> int -> Obj.Ephemeron.obj_t option
   val get_key_copy : Obj.Ephemeron.t -> int -> Obj.Ephemeron.obj_t option
   val set_key : Obj.Ephemeron.t -> int -> Obj.Ephemeron.obj_t -> unit
   val unset_key : Obj.Ephemeron.t -> int -> unit
   val check_key : Obj.Ephemeron.t -> int -> bool
   val blit_key :
    Obj.Ephemeron.t -> int -> Obj.Ephemeron.t -> int -> int -> unit
   val get_data : Obj.Ephemeron.t -> Obj.Ephemeron.obj_t option
   val get_data_copy : Obj.Ephemeron.t -> Obj.Ephemeron.obj_t option
   val set_data : Obj.Ephemeron.t -> Obj.Ephemeron.obj_t -> unit
   val unset_data : Obj.Ephemeron.t -> unit
   val check_data : Obj.Ephemeron.t -> bool
   val blit_data : Obj.Ephemeron.t -> Obj.Ephemeron.t -> unit
   val max_ephe_length : int
  end
end

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