AltErgoLib.Enum
type 'a abstract =
| Cons of Hstring.t * Ty.t
| 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