sig
  type elt_a
  type elt_b
  type 'a map_a
  type 'a map_b
  type set_a
  type set_b
  val proj_map :
    (SetMap.Projection.elt_a -> SetMap.Projection.elt_b) ->
    '->
    ('-> '-> 'b) ->
    'SetMap.Projection.map_a -> 'SetMap.Projection.map_b
  val proj_map_monadic :
    'parameters ->
    'method_handler ->
    (SetMap.Projection.elt_a -> SetMap.Projection.elt_b) ->
    '->
    ('parameters -> 'method_handler -> '-> '-> 'method_handler * 'b) ->
    'SetMap.Projection.map_a ->
    'method_handler * 'SetMap.Projection.map_b
  val proj_set :
    (SetMap.Projection.elt_a -> SetMap.Projection.elt_b) ->
    SetMap.Projection.set_a -> SetMap.Projection.set_b
  val proj_set_monadic :
    'parameters ->
    'method_handler ->
    ('parameters ->
     'method_handler ->
     SetMap.Projection.elt_a -> 'method_handler * SetMap.Projection.elt_b) ->
    SetMap.Projection.set_a -> 'method_handler * SetMap.Projection.set_b
  val partition_set :
    (SetMap.Projection.elt_a -> SetMap.Projection.elt_b) ->
    SetMap.Projection.set_a ->
    SetMap.Projection.set_a SetMap.Projection.map_b
  val partition_set_monadic :
    'parameters ->
    'method_handler ->
    ('parameters ->
     'method_handler ->
     SetMap.Projection.elt_a -> 'method_handler * SetMap.Projection.elt_b) ->
    SetMap.Projection.set_a ->
    'method_handler * SetMap.Projection.set_a SetMap.Projection.map_b
end