summaryrefslogtreecommitdiffstats
path: root/stdlib/obj.ml
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/obj.ml')
-rw-r--r--stdlib/obj.ml13
1 files changed, 13 insertions, 0 deletions
diff --git a/stdlib/obj.ml b/stdlib/obj.ml
new file mode 100644
index 000000000..b4c131ad4
--- /dev/null
+++ b/stdlib/obj.ml
@@ -0,0 +1,13 @@
+(* Operations on internal representations of values *)
+
+type t
+
+external repr : 'a -> t = "%identity"
+external magic : 'a -> 'b = "%identity"
+external is_block : t -> bool = "obj_is_block"
+external tag : t -> int = "%tagof"
+external size : t -> int = "%array_length"
+external field : t -> int -> t = "%array_get"
+external set_field : t -> int -> t -> unit = "%array_set"
+external new_block : int -> int -> t = "obj_block"
+external update : t -> t -> unit = "%update"