(* * Copyright (c) 2009-2010, Andrew Appel, Robert Dockins and Aquinas Hobor. * *)
(* Knots with all the bells and whistles *)
Local Open Scope nat_scope.
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] _ _ _.

Axiom bimap_id : forall A B, bimap (id A) (id B) = id (F A B).