fact: Record OrderedMonad : Type := mkOrderedMonad { omon_monad :> Monad ; omon_rel : forall A, relation (omon_monad A) ; omon_order : forall A, PreOrder (@omon_rel A) ; omon_bind : forall A B, Proper (@omon_rel A ==> pointwise_relation A (@omon_rel B) ==> @omon_rel B) bind }.
imports: Coq(ssreflect ssrfun FunctionalExtensionality) Mon(SPropBase) Coq(Relation_Definitions Morphisms)