Make parseOne in WidgetReader tail recursive