module Make:
Functor to build an Error
module for a given phase
.
Parameters: |
|
type'a
result =('a, exn) Result.t
Represent either a result of type 'a
or an error with an exception.
exception Typing_error of Options.category option * string
Typing error where the first element is the phase where the error occured and the second element is the error message.
exception Not_yet of Options.category option * string
"Not yet supported" error where the first element is the phase where the error occured and the second element is the error message.
exception Not_memoized of Options.category option
"Not memoized" error with the phase where the error occured.
val make_untypable : string -> exn
Make a Typing_error
exception with the given message.
val make_not_yet : string -> exn
Make a Not_yet
exception with the given message.
val make_not_memoized : unit -> exn
Make a Not_memoized
exception with the given message.
val untypable : string -> 'a
Typing_error
with the given message for the current phase.val not_yet : string -> 'a
Not_yet
with the given message for the current phase.val not_memoized : unit -> 'a
Not_memoized
for the current phase.val print_not_yet : string -> unit
Print the "not yet supported" message without raising an exception.
val handle : ('a -> 'a) -> 'a -> 'a
Run the closure with the given argument and handle potential errors. Return the provide argument in case of errors.
val generic_handle : ('a -> 'b) -> 'b -> 'a -> 'b
Run the closure with the given argument and handle potential errors. Return the additional argument in case of errors.
val retrieve_preprocessing : string ->
('a -> 'b result) ->
'a -> (Stdlib.Format.formatter -> 'a -> unit) -> 'b
Retrieve the result of a preprocessing phase, which possibly failed.
The string
argument and the formatter are used to display a message in
case the preprocessing phase did not compute the required result.
val pp_result : (Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter -> 'a result -> unit
pp_result pp
where pp
is a formatter for 'a
returns a formatter for
'a result
.