Utilities for printing debug messages.
eprint message
prints to stderr message
, followed by a newline and flush. This is
the same as prerr_endline
.
eprints message a sexp_of_a
prints to stderr message
and a
as a sexp, followed
by a newline and flush.
eprintf message arg1 ... argn
prints to stderr message
, with sprintf-style format
characters instantiated, followed by a newline and flush.
Debug.Make
produces a debug
function used to wrap a function to display arguments
before calling and display results after returning. Intended usage is:
module Foo = struct
type t = ...
let invariant = ...
let bar t x y : Result.t = ...
end
module Foo_debug = struct
open Foo
include Debug.Make ()
let debug x = debug invariant ~module_name:"Foo" x
let bar t x y =
debug "bar" [t] (t, x, y) <:sexp_of< t * X.t * Y.t >> <:sexp_of< Result.t >>
(fun () -> bar t x y)
end