fact: Definition first `(f : a -> b) `(x : a * z) : b * z := match x with (a, z) => (f a, z) end.
imports: Coq.Lists.List Category.Lib Category.Theory.Coq.Functor Category.Theory.Coq.Applicative Category.Theory.Coq.Monad Category.Theory.Coq.Semigroup Category.Theory.Coq.Monoid