type 'a abstract = | Constr of {c_name : Dolmen.Std.Expr.term_cst;c_ty : Ty.t;c_args : (Dolmen.Std.Expr.term_cst * 'a) list;
}| Select of {d_name : Dolmen.Std.Expr.term_cst;d_ty : Ty.t;d_arg : 'a;
}| Alien of 'a
module type ALIEN = sig ... end