fact: Definition option_fail : forall A, option_monad A := fun A => @throw unit A tt.
imports: mathcomp(all_ssreflect) imonae_lib HB(structures) ihierarchy imonad_lib ifail_lib istate_lib itrace_lib imonad_transformer