elpi

ELPI - Embeddable λProlog Interpreter
Library elpi.util
Module Elpi_util . Util . CData
type t
val pp : Format.formatter -> t -> unit
val show : t -> string
val equal : t -> t -> bool
val compare : t -> t -> int
type 'a data_declaration = {
data_name : string;
data_pp : Format.formatter -> 'a -> unit;
data_compare : 'a -> 'a -> int;
data_hash : 'a -> int;
data_hconsed : bool;
}
type 'a cdata = private {
cin : 'a -> t;
isc : t -> bool;
cout : t -> 'a;
name : string;
}
val declare : 'a data_declaration -> 'a cdata
val hash : t -> int
val name : t -> string
val hcons : t -> t
val morph1 : 'a cdata -> ( 'a -> 'a ) -> t -> t
val ty2 : 'a cdata -> t -> t -> bool
val morph2 : 'a cdata -> ( 'a -> 'a -> 'a ) -> t -> t -> t
val map : 'a cdata -> 'b cdata -> ( 'a -> 'b ) -> t -> t