A really generic event dispatcher for Ocaml