Module PolyMap.MakeSource

Parameters

module Tag : Tag

Signature

Sourcemodule type OneTag = sig ... end
Sourcetype 'a onetag = (module OneTag with type a = 'a)

There is no equality function between _ tag values (other than Stdlib.(=)), and especially no equality function which shows that when the values are equal the type arguments are also equal.

Instead we can use 'a onetag to recognize 'b tag values.

Sourceval eq_onetag : 'a onetag -> 'b Tag.tag -> ('a, 'b) CSig.eq option
Sourceval make : unit -> 'a onetag
Sourceval tag_of_onetag : 'a onetag -> 'a Tag.tag
Sourcemodule type MapS = sig ... end
Sourcemodule Map (V : ValueS) : MapS with type 'a value := 'a V.t