Is this actually doing sub-list parsing? It would be nice to have naming that distinguished `parse_list` from `_parse_list`