I was looking over the map.ml file to see what it consists of and I came across a signature which I don't understand. Its the S signature.
module type S =
sig
type key
...
val mapi: (key -> 'a -> 'b) -> 'a t -> 'b t
end
I understand how the signature OrderedType and the functor Make are used in conjunction to create modules but I'm at a loss figuring out how the S signature fits into the map module. Is the S signature just a generic signature for the created modules from Make?