coq-core.clib
PolyMap.Make
btauto_plugin
cc_plugin
coq-core.boot
coq-core.config
coq-core.coqworkmgrapi
coq-core.engine
coq-core.gramlib
coq-core.interp
coq-core.kernel
coq-core.lib
coq-core.library
coq-core.parsing
coq-core.plugins
coq-core.pretyping
coq-core.printing
coq-core.proofs
coq-core.stm
coq-core.sysinit
coq-core.tactics
coq-core.top_printers
coq-core.toplevel
coq-core.vernac
coq-core.vm
derive_plugin
extraction_plugin
firstorder_plugin
funind_plugin
ltac2_plugin
ltac_plugin
micromega_plugin
nsatz_plugin
number_string_notation_plugin
ring_plugin
rtauto_plugin
ssreflect_plugin
ssrmatching_plugin
tauto_plugin
tuto0_plugin
tuto1_plugin
tuto2_plugin
tuto3_plugin
zify_plugin
module Tag : Tag
module type OneTag = sig ... end
type '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.
_ tag
Stdlib.(=)
Instead we can use 'a onetag to recognize 'b tag values.
'a onetag
'b tag
val eq_onetag : 'a onetag -> 'b Tag.tag -> ('a, 'b) CSig.eq option
val make : unit -> 'a onetag
val tag_of_onetag : 'a onetag -> 'a Tag.tag
module type MapS = sig ... end
module Map (V : ValueS) : MapS with type 'a value := 'a V.t