pub type PureCases<Elim> = ElimCase<Cases<Pure<Elim>>>;
struct PureCases<Elim> { pub cases: Cases<Pure<Elim>>, }
cases: Cases<Pure<Elim>>