forked from rescript-lang/rescript
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathobj.res
29 lines (26 loc) · 1.01 KB
/
obj.res
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/* ************************************************************************ */
/* */
/* OCaml */
/* */
/* Xavier Leroy, projet Cristal, INRIA Rocquencourt */
/* */
/* Copyright 1996 Institut National de Recherche en Informatique et */
/* en Automatique. */
/* */
/* All rights reserved. This file is distributed under the terms of */
/* the GNU Lesser General Public License version 2.1, with the */
/* special exception on linking described in the file LICENSE. */
/* */
/* ************************************************************************ */
/* Operations on internal representations of values */
type t
external repr: 'a => t = "%identity"
external obj: t => 'a = "%identity"
external magic: 'a => 'b = "%identity"
external is_int: t => bool = "%obj_is_int"
@inline(always) let is_block = a => !is_int(a)
external tag: t => int = "?obj_tag"
external size: t => int = "#obj_length"
external field: (t, int) => t = "%obj_field"
external set_field: (t, int, t) => unit = "%obj_set_field"
external dup: t => t = "?obj_dup"