An (incomplete) Ocaml/Async implementation of Erlang's gen_server