Assertions Language

Checks that can be added in pre/post-conditions can be of three kinds as shown by the type:

#![allow(unused)]
fn main() {
type check =
  | Exec of (check_arg -> unit tzresult Lwt.t)
  | Check of string * on_fail * (check_arg -> bool tzresult Lwt.t)
  | AsyncCheck of string * on_fail * (check_arg -> bool tzresult Lwt.t)
}