Make parseString total

(the major catch here was that it still failed for the empty string)