type case = string * (unit -> unit) val check : string -> bool -> unit val fail : string -> string -> unit val check_equal_int : string -> int -> int -> unit val check_equal_string : string -> string -> string -> unit val check_true : string -> string -> bool -> unit val expect_diagnostic : string -> (unit -> unit) -> unit val run_suite : string -> case list -> unit val failure_count : unit -> int val case_count : unit -> int val root : unit -> string val fixture : string -> string val read_fixture : string -> string val error_of : (unit -> 'a) -> Diagnostic.t option val parse : string -> Syntax.program val resolve : string -> Resolve.program val infer : string -> Typed.program val parse_error : string -> Diagnostic.t option val resolve_error : string -> Diagnostic.t option val infer_error : string -> Diagnostic.t option val check_message : string -> string -> (unit -> 'a) -> unit