Module Type TY_FUNCTOR_FULL.
Parameter F : Type -> Type -> Type.
Parameter bimap : forall A B C D, (A -> B) -> (C -> D) -> F B C -> F A D.
Arguments bimap [A B C D] _ _ _.
Parameter other : Type.
Parameter Rel : forall A B, F A B -> F A B -> Prop.
Parameter Rel_bimap : forall A B C D (f:A->B) (s:C->D) x y,
Rel D A x y ->
Rel C B (bimap s f x) (bimap s f y).
Parameter ORel : other -> other -> Prop.

Axiom ORel_refl : reflexive other ORel.
Axiom ORel_trans : transitive other ORel.