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