sig
type 'a guard = { assuming : 'a list; asserting : 'a list; }
val empty_guard : 'a TermInner.Builtin.guard
val map_guard :
('a -> 'b) -> 'a TermInner.Builtin.guard -> 'b TermInner.Builtin.guard
val merge_guard :
'a TermInner.Builtin.guard ->
'a TermInner.Builtin.guard -> 'a TermInner.Builtin.guard
type 'a t =
[ `And of 'a list
| `DataSelect of TermInner.id * int
| `DataTest of TermInner.id
| `Eq of 'a * 'a
| `False
| `Guard of 'a * 'a TermInner.Builtin.guard
| `Imply of 'a * 'a
| `Ite of 'a * 'a * 'a
| `Not of 'a
| `Or of 'a list
| `True
| `Undefined_atom of TermInner.id * 'a
| `Undefined_self of TermInner.id * 'a
| `Unparsable of 'a ]
val prec : 'a TermInner.Builtin.t -> TermInner.prec
val print_infix_list :
(Format.formatter -> 'a -> unit) ->
string -> Format.formatter -> 'a list -> unit
val pp :
'a CCFormat.printer -> CCFormat.t -> 'a TermInner.Builtin.t -> unit
val equal :
('a -> 'a -> bool) ->
'a TermInner.Builtin.t -> 'a TermInner.Builtin.t -> bool
val map : f:('a -> 'b) -> 'a TermInner.Builtin.t -> 'b TermInner.Builtin.t
val fold :
f:('acc -> 'a -> 'acc) -> x:'acc -> 'a TermInner.Builtin.t -> 'acc
val fold2_l :
f:('a -> 'b -> 'c -> 'a) ->
fail:(unit -> 'a) -> x:'a -> 'b list -> 'c list -> 'a
val fold2 :
f:('acc -> 'a -> 'b -> 'acc) ->
fail:(unit -> 'acc) ->
x:'acc -> 'a TermInner.Builtin.t -> 'b TermInner.Builtin.t -> 'acc
val iter : ('a -> unit) -> 'a TermInner.Builtin.t -> unit
val to_seq : 'a TermInner.Builtin.t -> ('a -> unit) -> unit
val to_sexp : ('a -> Sexp_lib.t) -> 'a TermInner.Builtin.t -> Sexp_lib.t
end