File: type_abstract.mli

package info (click to toggle)
typerep 111.17.00-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,076 kB
  • ctags: 3,093
  • sloc: ml: 18,181; makefile: 55
file content (33 lines) | stat: -rw-r--r-- 1,077 bytes parent folder | download | duplicates (2)
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
(**
   Abstract types helpers.

   An abstract type in the sense of the typerep library is a type whose representation is
   unknown. Such a type has only a name that can be used to provide and register custom
   implementation of generics. This is typically a type obtained with the following syntax
   extension:

   {[
   type t with typerep(abstract)
   ]}

   The following functors are meant to be used by the code generator, however they could
   also be useful while writing low level typerep code manually.
*)

module Make0 (X : Named_intf.S0) : Typerepable.S0
  with type t := X.t

module Make1 (X : Named_intf.S1) : Typerepable.S1
  with type 'a t := 'a X.t

module Make2 (X : Named_intf.S2) : Typerepable.S2
  with type ('a, 'b) t := ('a, 'b) X.t

module Make3 (X : Named_intf.S3) : Typerepable.S3
  with type ('a, 'b, 'c) t := ('a, 'b, 'c) X.t

module Make4 (X : Named_intf.S4) : Typerepable.S4
  with type ('a, 'b, 'c, 'd) t := ('a, 'b, 'c, 'd) X.t

module Make5 (X : Named_intf.S5) : Typerepable.S5
  with type ('a, 'b, 'c, 'd, 'e) t := ('a, 'b, 'c, 'd, 'e) X.t