module Builtin: sig
.. end
type 'a
guard = {
|
assuming : 'a list ; |
|
asserting : 'a list ; |
}
val empty_guard : 'a guard
val map_guard : ('a -> 'b) -> 'a guard -> 'b guard
val merge_guard : 'a guard ->
'a guard -> 'a 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 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 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 t -> unit
val equal : ('a -> 'a -> bool) ->
'a t -> 'a t -> bool
val map : f:('a -> 'b) -> 'a t -> 'b t
val fold : f:('acc -> 'a -> 'acc) -> x:'acc -> 'a 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 t -> 'b t -> 'acc
val iter : ('a -> unit) -> 'a t -> unit
val to_seq : 'a t -> ('a -> unit) -> unit
val to_sexp : ('a -> Sexp_lib.t) -> 'a t -> Sexp_lib.t