Return `ParseError` rather than `panic!`