`sig
module type Functor =
sig
type 'a f
val map :
('a -> 'b) ->
'a Deriving_Functor.Functor.f -> 'b Deriving_Functor.Functor.f
end
module MonadFunctor :
functor (M : Deriving_monad.Monad) ->
sig type 'a f = 'a M.m val map : ('a -> 'b) -> 'a f -> 'b f end
module Functor_option :
sig type 'a f = 'a option val map : ('a -> 'b) -> 'a f -> 'b f end
module Functor_list :
sig type 'a f = 'a list val map : ('a -> 'b) -> 'a f -> 'b f end
module Functor_map :
functor (O : Map.OrderedType) ->
sig
type 'a f = 'a Map.Make(O).t
val map : ('a -> 'b) -> 'a f -> 'b f
end
end`