Module Dolmen_model.Adt

val (<?>) : int -> (( 'a -> 'a -> int ) * 'a * 'a) -> int
val lexicographic : ( 'a -> 'a -> int ) -> 'a list -> 'a list -> int
module E = Dolmen.Std.Expr
exception Not_a_pattern of T.t
exception Partial_destructor of C.t * Value.t
type t = {
head : C.t;
args : Value.t list;
}
val print : Stdlib.Format.formatter -> t -> unit
val compare : t -> t -> int
val ops : t Value.ops
val mk : C.t -> Value.t list -> Value.t
val tester : C.t -> Value.t -> Value.t
val destructor : C.t -> int -> Value.t -> Value.t
val builtins : 'a -> C.t -> Value.t option
type pat =
| Var of V.t
| Cstr of C.t * T.t list
val view_pat : T.t -> pat
val pattern_match : Env.t -> T.t -> Value.t -> Env.t option
val pattern_match_list : Env.t -> T.t list -> Value.t list -> Env.t option