API.OpaqueData
Declare data from the host application that is opaque (no syntax), like int but not like list or pair
type 'a declaration = {
name : name; |
doc : doc; |
pp : Stdlib.Format.formatter -> 'a -> unit; |
compare : 'a -> 'a -> int; |
hash : 'a -> int; |
hconsed : bool; |
constants : (name * 'a) list; |
}
The eq
function is used by unification. Limitation: unification of * two cdata cannot alter the constraint store. This can be lifted in the * future if there is user request. * * If the hconsed is true, then the readback
function is * automatically hashcons the data using the eq
and hash
functions.
val declare : 'a declaration -> 'a Conversion.t