fact: Definition stranger := let g b := reset ((shift (fun f : _ -> _ _ _ => f b) >>= (fun x => if x then Ret 2 else Ret 3))) in g true +m g false.
imports: mathcomp(all_ssreflect) imonae_lib HB(structures) ihierarchy imonad_lib ifail_lib istate_lib itrace_lib imonad_transformer