Module AltErgoLib.Adt

val src : Logs.src
type 'a abstract =
  1. | Constr of {
    1. c_name : Uid.term_cst;
    2. c_ty : Ty.t;
    3. c_args : (Uid.term_cst * 'a) list;
    }
  2. | Select of {
    1. d_name : Uid.term_cst;
    2. d_ty : Ty.t;
    3. d_arg : 'a;
    }
  3. | 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