public string visit(toto obj) { return obj.SayHello(); }
public string doSayHello(toto obj) { return obj.apply(this); }