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 = _ and type Expression.t' = _ and type Instruction.t = _ and type Instruction.t' = _ and type Location.t = 'a) -> 'a Id.typeid * t (** Build a new check from a module following S.Analyzer signature. Return the result type which hold the final result value, and checker itself. *) 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"]