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).

Axiom Rel_refl : forall A B x, Rel A B x x.
Axiom Rel_trans : forall A B x y z,
Rel A B x y -> Rel A B y z -> Rel A B x z.