Module Lower.Errs

Low level IO abstraction. A typical implementation is unix. This abstraction is meant to be dead simple. Not a lot of documentation is required.

type t = [
  1. | Irmin_pack_unix.Errors.Base.t
  2. | `Io_misc of Io.misc_error
]
val t : t Irmin.Type.t
val raise_error : [< t ] -> 'a
val log_error : string -> [< t ] -> unit
val catch : (unit -> 'a) -> ('a, t) Stdlib.result
val raise_if_error : ('a, [< t ]) Stdlib.result -> 'a
val log_if_error : string -> ('a, [< t ]) Stdlib.result -> unit