could we rename ParseNonEmptyString to ParseRequiredString? I think this will make the utility function's purpose clearer.