Re-implement Statement::apply in terms of Visitor