mk_hol_error mk_hol_error : string -> string -> locn.locn -> string -> hol_error
Create a hol_error value.
An invocation mk_hol_error sname fname loc m builds an
initial hol_error value where sname is the
enclosing module name, fname is the enclosing function
name, loc is the location in the file where the error is
detected, and m is the error message.
hol_error values are used to build HOL_ERR
exceptions.
> val holerr =
mk_hol_error "Foo" "bar" locn.Loc_Unknown "unexpected input"
val holerr = at Foo.bar: unexpected input: hol_error
> val holexn = HOL_ERR holerr;
val holexn = HOL_ERR (at Foo.bar: unexpected input): exn
The representation of the hol_error type includes
origin elements.Each origin value includes source information such as
the enclosing SML module and function, plus the source location where
the error originated. The list of origins is typically used as a stack,
and can be used to provide a backtrace facility. The function
wrap_hol_error is used to push an origin onto the existing
origins of a hol_error, however it is more common to use
wrap_exn on HOL_ERR values.
Feedback, Feedback.HOL_ERR, Feedback.origins_of, Feedback.message_of, Feedback.top_structure_of,
Feedback.top_function_of,
Feedback.top_location_of,
Feedback.set_top_function,
Feedback.set_message,
Feedback.wrap_hol_error