Lift Elasticsearch errors into something more explicit
@MichaelXavier I was hesitant to lift errors into a concrete datatype because they didn't document anything and I'd have to figure out how to reproduce everything for testing. Means having an "UnknownError" case is virtually unavoidable.
Seems a good idea to me.
FWIW every time I've tried to go down the holy path of an error ADT in any code that uses IO or code someone else wrote, I always have to add a tag for SomeException.
As is the norm in the hellscape that is modern software development, there is no documentation I could find in the official docs about failure modes. The closest I could get is the official Python ES client documents the exceptions it can raise 1, so maybe we could base the taxonomy off of this and have an easier time finding out where these errors come for in the wild.