I like the idea of a callback better than a try/catch in `parseHistory`, for some applications it may be important to be able to identify this kind of errors explicitly.