https://github.com/ocharles/Elasticsearch
it's not very principled, tbh. uses error etc rather than proper sum types for returning errors.