Dolmen_loop.CodeAn abstraction over exit status.
Concretely this corresponds to an exit/return code for the binary (in the case of the dolmen binary or solver-like binaries).
In practice, the exact error code corresponding to a value of this type can be set later. This is useful so that users of the library can decide the codes, and among other things, ensure that error codes are stable.
val hash : t -> intval init : ?full:bool -> (t * int) list -> unitInitialise all retcodes with the given association list. All codes that are not present in the list are assigned a arbitrary free return code. If ~full is true, and not all retcodes are present in the association list, then this function with raise a Failure _ exception.
val create : category:string -> descr:string -> tCreate a new exit code. The string given is used as a description for the exit code. The create code is active by default.
val descr : t -> int * stringReturn the actual integer associated to the code,
val category : t -> stringCategory (used mainly for report documentation).
val errors : unit -> t listReturn the list of all created error exit codes.
val ok : tThe 0 exit code, signalling everything ran fine.
val bug : tUnexpected errors. This uses retcode 125 since this is also what cmdliner uses. This code will not appear in the list returned by rrors.
val generic : tGeneric exit code.
val limit : tval parsing : tExit code for parsing errors.
val typing : tExit codes for typing errors.
val exit : t -> _Exit with the given code (or abort if the exit code is marked as an abort code).
val is_abort : t -> boolWhether an exit code is active.
val abort : t -> unitMake the exit code abort instead of properly exiting.
val error : t -> unitMake the exit code properly exit.