sig
type aggregate = {
left : TopDown.S.T.t;
constructor : TopDown.S.const;
var : TopDown.S.T.t;
guard : TopDown.S.T.t;
}
type t =
LitPos of TopDown.S.T.t
| LitNeg of TopDown.S.T.t
| LitAggr of TopDown.S.Lit.aggregate
val mk_pos : TopDown.S.T.t -> TopDown.S.Lit.t
val mk_neg : TopDown.S.T.t -> TopDown.S.Lit.t
val mk : bool -> TopDown.S.T.t -> TopDown.S.Lit.t
val mk_aggr :
left:TopDown.S.T.t ->
constructor:TopDown.S.const ->
var:TopDown.S.T.t -> guard:TopDown.S.T.t -> TopDown.S.Lit.t
val eq : TopDown.S.Lit.t -> TopDown.S.Lit.t -> bool
val hash : TopDown.S.Lit.t -> int
val to_term : TopDown.S.Lit.t -> TopDown.S.T.t
val fmap :
(TopDown.S.T.t -> TopDown.S.T.t) -> TopDown.S.Lit.t -> TopDown.S.Lit.t
val to_string : TopDown.S.Lit.t -> string
val pp : Pervasives.out_channel -> TopDown.S.Lit.t -> unit
val fmt : Format.formatter -> TopDown.S.Lit.t -> unit
end