blob: 56d76b39a78722ca091dd23310b72963ddff7309 (
plain)
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
52
53
54
55
56
|
open Asttypes
open Typedtree
open Types
val omega : pattern
(** aka. "Tpat_any" or "_" *)
val omegas : int -> pattern list
(** [List.init (fun _ -> omega)] *)
val omega_list : 'a list -> pattern list
(** [List.map (fun _ -> omega)] *)
module Head : sig
type desc =
| Any
| Construct of constructor_description
| Constant of constant
| Tuple of int
| Record of label_description list
| Variant of
{ tag: label; has_arg: bool;
cstr_row: row_desc ref;
type_row : unit -> row_desc; }
(* the row of the type may evolve if [close_variant] is called,
hence the (unit -> ...) delay *)
| Array of int
| Lazy
type t
val desc : t -> desc
val env : t -> Env.t
val loc : t -> Location.t
val typ : t -> Types.type_expr
val arity : t -> int
(** [deconstruct p] returns the head of [p] and the list of sub patterns.
@raises [Invalid_arg _] if [p] is an or- or an exception-pattern. *)
val deconstruct : pattern -> t * pattern list
(** reconstructs a pattern, putting wildcards as sub-patterns. *)
val to_omega_pattern : t -> pattern
val make
: loc:Location.t
-> typ:Types.type_expr
-> env:Env.t
-> desc
-> t
val omega : t
end
|