>I don't think `Empty` is declared in the interface of Map.Make, it may
> Can anyone tell me why the compiler complained about Empty being an unbound constructor when it's declared in Map.Make,
> which I include?
>
be declared in the implementation but it is not available in the
interface. Making it available in the interface would break abstraction:
it would force `Map.Make` to keep using that particular implementation.
Regards,
Leo