sig
type t = private Type.t ID.Map.t
val empty : Signature.t
val is_empty : Signature.t -> bool
val singleton : ID.t -> Type.t -> Signature.t
val mem : Signature.t -> ID.t -> bool
exception AlreadyDeclared of ID.t * Type.t * Type.t
val declare : Signature.t -> ID.t -> Type.t -> Signature.t
val find : Signature.t -> ID.t -> Type.t option
val find_exn : Signature.t -> ID.t -> Type.t
val arity : Signature.t -> ID.t -> int * int
val cardinal : Signature.t -> int
val is_ground : Signature.t -> bool
val merge : Signature.t -> Signature.t -> Signature.t
val filter : Signature.t -> (ID.t -> Type.t -> bool) -> Signature.t
val diff : Signature.t -> Signature.t -> Signature.t
val well_founded : Signature.t -> bool
module Seq :
sig
val symbols : Signature.t -> ID.t Sequence.t
val types : Signature.t -> Type.t Sequence.t
val to_seq : Signature.t -> (ID.t * Type.t) Sequence.t
val of_seq : (ID.t * Type.t) Sequence.t -> Signature.t
val add_seq : Signature.t -> (ID.t * Type.t) Sequence.t -> Signature.t
end
val to_set : Signature.t -> ID.Set.t
val to_list : Signature.t -> (ID.t * Type.t) list
val add_list : Signature.t -> (ID.t * Type.t) list -> Signature.t
val of_list : (ID.t * Type.t) list -> Signature.t
val iter : Signature.t -> (ID.t -> Type.t -> unit) -> unit
val fold : Signature.t -> 'a -> ('a -> ID.t -> Type.t -> 'a) -> 'a
val is_bool : Signature.t -> ID.t -> bool
val is_not_bool : Signature.t -> ID.t -> bool
val pp : t CCFormat.printer
val to_string : t -> string
end