sig
  type key
  type img
  type t
  val empty : OwnMap.S.t
  val is_empty : OwnMap.S.t -> bool
  val add : OwnMap.S.key -> OwnMap.S.img -> OwnMap.S.t -> OwnMap.S.t
  val find : OwnMap.S.key -> OwnMap.S.t -> OwnMap.S.img
  val remove : OwnMap.S.key -> OwnMap.S.t -> OwnMap.S.t
  val mem : OwnMap.S.key -> OwnMap.S.t -> bool
  val iter : (OwnMap.S.key -> OwnMap.S.img -> unit) -> OwnMap.S.t -> unit
  val map : (OwnMap.S.img -> OwnMap.S.img) -> OwnMap.S.t -> OwnMap.S.t
  val mapi :
    (OwnMap.S.key -> OwnMap.S.img -> OwnMap.S.img) ->
    OwnMap.S.t -> OwnMap.S.t
  val fold :
    (OwnMap.S.key -> OwnMap.S.img -> '-> 'a) -> OwnMap.S.t -> '-> 'a
  val compare : OwnMap.S.t -> OwnMap.S.t -> int
  val equal : OwnMap.S.t -> OwnMap.S.t -> bool
  val add' : OwnMap.S.key -> OwnMap.S.img option -> OwnMap.S.t -> OwnMap.S.t
  val find' : OwnMap.S.key -> OwnMap.S.t -> OwnMap.S.img option
  val add_list :
    (OwnMap.S.key * OwnMap.S.img) list -> OwnMap.S.t -> OwnMap.S.t
  val to_list : OwnMap.S.t -> (OwnMap.S.key * OwnMap.S.img) list
  val from_list : (OwnMap.S.key * OwnMap.S.img) list -> OwnMap.S.t
  val map_to_list :
    (OwnMap.S.key -> OwnMap.S.img -> 'a) -> OwnMap.S.t -> 'a list
  val mapi_and_map_to_list :
    (OwnMap.S.key -> OwnMap.S.img -> OwnMap.S.img * 'a) ->
    OwnMap.S.t -> OwnMap.S.t * 'a list
  val domain : OwnMap.S.t -> OwnMap.S.key list
  val fold_two :
    (OwnMap.S.key -> OwnMap.S.img option -> OwnMap.S.img option -> '-> 'a) ->
    '-> OwnMap.S.t -> OwnMap.S.t -> 'a
  val restrict : OwnMap.S.key list -> OwnMap.S.t -> OwnMap.S.t
end