Skip to content
This repository
tag: v642
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 52 lines (33 sloc) 1.855 kb
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 *)
Something went wrong with that request. Please try again.