12345678910111213141516171819202122232425262728293031(** An extension of [Base.Map] with a [Make] functor that builds a map module with [type
t] and [val empty]. This reduces verbosity, allowing one to write [Foo_map.t] and
[Foo_map.empty] rather than [Map.M(Foo).t] and [Map.empty (module Foo)]. *)open!ImportmoduletypeKey=sigtypet[@@derivingsexp_of]includeComparator.Swithtypet:=tendmoduletypeS=sigmoduleKey:Keytype'at='aBase.Map.M(Key).t[@@derivingsexp_of]valempty:'atendmoduletypeMap=sigincludemoduletypeofstructincludeBase.MapendmoduletypeKey=KeymoduletypeS=SmoduleMake(Key:Key):SwithmoduleKey:=Keyend