forked https://github.com/esumii/min-caml