-
Notifications
You must be signed in to change notification settings - Fork 464
/
Copy pathprimitive.mli
37 lines (31 loc) · 1.77 KB
/
primitive.mli
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
30
31
32
33
34
35
36
37
(**************************************************************************)
(* *)
(* 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. *)
(* *)
(**************************************************************************)
(* Description of primitive functions *)
type description = private {
prim_name: string; (* Name of primitive or C function *)
prim_arity: int; (* Number of arguments *)
prim_alloc: bool; (* Does it allocates or raise? *)
prim_native_name: string; (* Name of C function for the nat. code gen. *)
prim_from_constructor: bool;
(* Is it from a type constructor instead of a concrete function type? *)
}
(* Invariant [List.length d.prim_native_repr_args = d.prim_arity] *)
val parse_declaration :
Parsetree.value_description ->
arity:int ->
from_constructor:bool ->
description
val print : description -> Outcometree.out_val_decl -> Outcometree.out_val_decl
val coerce : (description -> description -> bool) ref