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"]