sig
  type 'a t = 'Syntax.formula
  val equal : 'Syntax.formula -> 'Syntax.formula -> bool
  val compare : 'Syntax.formula -> 'Syntax.formula -> int
  val hash : 'Syntax.formula -> int
  val pp :
    ?env:string Syntax.Env.t ->
    'Syntax.context -> Format.formatter -> 'Syntax.formula -> unit
  val show :
    ?env:string Syntax.Env.t ->
    'Syntax.context -> 'Syntax.formula -> string
  val destruct :
    'Syntax.context ->
    'Syntax.formula -> ('Syntax.formula, 'a) Syntax.open_formula
  val eval :
    'Syntax.context ->
    (('b, 'a) Syntax.open_formula -> 'b) -> 'Syntax.formula -> 'b
  val eval_memo :
    'Syntax.context ->
    (('b, 'a) Syntax.open_formula -> 'b) -> 'Syntax.formula -> 'b
  val existential_closure :
    'Syntax.context -> 'Syntax.formula -> 'Syntax.formula
  val universal_closure :
    'Syntax.context -> 'Syntax.formula -> 'Syntax.formula
  val skolemize_free :
    'Syntax.context -> 'Syntax.formula -> 'Syntax.formula
  val prenex : 'Syntax.context -> 'Syntax.formula -> 'Syntax.formula
end