proposition: Corollary contramap_comp_x `{ContravariantLaws F} : forall (a b c : Type) (f : b -> c) (g : a -> b) x, contramap g (contramap f x) = contramap (fun y => f (g y)) x.
proof: Proof. intros. replace (fun y : a => f (g y)) with (f \o g). rewrite <- contramap_comp. reflexivity. reflexivity. Qed.
imports: Hask.Ltac Hask.Data.Functor FunctionalExtensionality