sig
  type 'a t
  val fmap : ('a -> 'b) -> 'a Functor.Functor.t -> 'b Functor.Functor.t
end