sig
  type +'a t
  val map : ('-> 'b) -> 'CCCat.FUNCTOR.t -> 'CCCat.FUNCTOR.t
end