Base step(in Base b, in int delta) {
final switch (b.type) with (b) {
case intType: return Base(b.get!int + delta);
Or better:
final switch (b.type) with (b.Types) {
Bye,
bearophile
Base step(in Base b, in int delta) {
final switch (b.type) with (b) {
case intType: return Base(b.get!int + delta);
Or better:
final switch (b.type) with (b.Types) {
Bye,
bearophile