AltErgoLib.Adt
val src : Logs.src
type 'a abstract =
| Constr of {
c_name : Uid.term_cst;
c_ty : Ty.t;
c_args : (Uid.term_cst * 'a) list;
}
| Select of {
d_name : Uid.term_cst;
d_ty : Ty.t;
d_arg : 'a;
| Alien of 'a
module type ALIEN = sig ... end
module Shostak (X : ALIEN) : Sig.SHOSTAK with type r = X.r and type t = X.r abstract