sig
module type SYMBOL_SEED =
sig
type t
val name : string
val compare : t -> t -> int
val pair : t -> t -> t
val of_string : string -> t
val to_string : t -> string
val print : ?oc:out_channel -> t -> unit
val print_ : ?oc:out_channel -> t -> unit
val are_compatible : t -> t -> bool
val conform : t -> t -> t
end
module type SYMBOL_TYPE =
sig
type t
val name : string
val compare : t -> t -> int
val pair : t -> t -> t
val of_string : string -> t
val to_string : t -> string
val print : ?oc:out_channel -> t -> unit
val print_ : ?oc:out_channel -> t -> unit
val are_unifiable : t -> t -> bool
val conform : t -> t -> t
type x
val of_x : Symbols.SYMBOL_TYPE.x -> t
val to_x : t -> Symbols.SYMBOL_TYPE.x
val blank : t
val wild : t
end
module Make :
functor (X : SYMBOL_SEED) ->
sig
type t
val name : string
val compare : t -> t -> int
val pair : t -> t -> t
val of_string : string -> t
val to_string : t -> string
val print : ?oc:out_channel -> t -> unit
val print_ : ?oc:out_channel -> t -> unit
val are_unifiable : t -> t -> bool
val conform : t -> t -> t
type x = X.t
val of_x : x -> t
val to_x : t -> x
val blank : t
val wild : t
end
end