functor (A : S) (B : S) (C : S) ->
sig
type elt_a = A.elt
type elt_b = B.elt
type elt_c = C.elt
type 'a map_a = 'a A.Map.t
type 'a map_b = 'a B.Map.t
type 'a map_c = 'a C.Map.t
val proj2 :
(elt_a -> elt_b) ->
(elt_a -> elt_c) ->
'b -> ('b -> 'a -> 'b) -> 'a map_a -> 'b map_c map_b
val proj2_monadic :
'parameters ->
'method_handler ->
(elt_a -> elt_b) ->
(elt_a -> elt_c) ->
'b ->
('parameters -> 'method_handler -> 'b -> 'a -> 'method_handler * 'b) ->
'a map_a -> 'method_handler * 'b map_c map_b
end