Ah ok, the reason for two methods and arraybuffer -> read only seq change was: 
I was trying to ensure that the result of the parse is enforced to be read only - so that the args passed in by the invoker do not get modified once it is parsed. Reasoning was, if immutable, then it is one less surface for bugs (also, was continuing with existing contract of the class)

If that is not a concern, I can change it to ArrayBuffer - I do not know the performance characterstics of .readOnly : so I assume there is a good reason to drop it !

Btw, parse (and parseImpl) should be private, sigh