-
Notifications
You must be signed in to change notification settings - Fork 125
/
qmlGenericScheme.mli
51 lines (33 loc) · 1.81 KB
/
qmlGenericScheme.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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
(*
Copyright © 2011 MLstate
This file is part of Opa.
Opa is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License, version 3, as published by
the Free Software Foundation.
Opa is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
more details.
You should have received a copy of the GNU Affero General Public License
along with Opa. If not, see <http://www.gnu.org/licenses/>.
*)
(**)
type ordered_quantif =
(QmlTypeVars.TypeVar.t list, QmlTypeVars.RowVar.t list, QmlTypeVars.ColVar.t list) QmlTypeVars.generic_quantif
(* generic type scheme, parameterized by types and normal form constraints *)
type ('t, 'c) tsc
val import : QmlTypeVars.FreeVars.t -> 't -> 'c -> ('t, 'c) tsc
val export_unsafe : ('t, 'c) tsc -> QmlTypeVars.FreeVars.t * 't * 'c
(* consults and updates a cache reference inside the argument tsc *)
val freevars_with_cache : ('t -> 'c -> QmlTypeVars.FreeVars.t) -> ('t, 'c) tsc -> QmlTypeVars.FreeVars.t
val phantomvars_with_cache : ('t -> 'c -> QmlTypeVars.FreeVars.t) -> ('t, 'c) tsc -> QmlTypeVars.FreeVars.t
val export_vars : ('t, 'c) tsc -> QmlTypeVars.FreeVars.t
val export_ordered_quantif : ('t, 'c) tsc -> ordered_quantif
(** number of type vars in a type definition *)
val arity : ('t, 'c) tsc -> int
val full_arity : ('t, 'c) tsc -> int * int * int
(** tells if the full arity if (0,0,0) *)
val is_empty : ('t, 'c) tsc -> bool
val map_body_unsafe : ('t -> 'u) -> ('t, 'c) tsc -> ('u, 'c) tsc
val map_body_unsafe2 : ('t -> ('u * 'a)) -> ('t, 'c) tsc -> (('u, 'c) tsc) * 'a
(* TODO: add refresh, etc. here, when they are made generic *)