aboutsummaryrefslogtreecommitdiff
path: root/lib/syntax/check.mli
blob: c831b67c938efa19ac05261cfe13b33537e5eac9 (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
module Id : sig
  type 'a typeid
  (** The type created on-the-fly. *)
end

type t
(** Type of check to apply *)

val build :
  (module S.Analyzer
     with type Expression.t = 'a
      and type Instruction.t = 'b
      and type Location.t = 'c) ->
  'a Id.typeid * 'b Id.typeid * 'c Id.typeid * t
(** Build a new check from a module following S.Analyzer signature *)

module type App = sig
  val t : t array
end

type result

val get : 'a Id.typeid -> result -> 'a option
(** Retrieve the information with the given type *)

module Make (A : App) : sig
  include
    S.Analyzer
      with type Location.t = result array
       and type Instruction.t' = result array
       and type Expression.t' = result array
end
[@@warning "-67"]