<div dir="ltr"><div><div><div><div><div><div><div><div><div><br></div>Hi<br><br></div>Yet Another Proposal ™  :)<br><br></div>Here, at NYU-Bio we use camlp4 in two ways:<br><br></div>1. All the code is JaneSt-Core-styled and uses sexplib.syntax and  bin_prot.syntax<br>

</div><br>We also use an ('a, 'b) Result.t Lwt.t  monad everywhere but there is no need for camlp4, monadic programming is perfectly fine with normal OCaml syntax.<br><br></div>2. The web-app is fully Eliom-based: it uses the eliom{dep,c,opt} tool-chain, so it is incompatible with sexplib.syntax (because it imposes deriving) and takes ages to compile.<br>

</div>(if I had to start again the project, I think I would not use the syntax part of ocsigen or at least limit it to one single file).<br><br><br></div><div>I think I have already lost too many hours of my life fixing camlp4-related problems just for using type_conv, so:<br>

<br></div><div><br></div>The proposal:<br><br></div>Get something like dyntype [1] or what Pierre Chambart and Grégoire Henry presented at OUD [2], into the main compiler. <br><br>type_conv and deriving will become obsolete.<br>

<div><div><br></div><div>Then, most people can get rid of any kind of syntactic preprocessing for 95% of their problems.<br><br></div><div>For the remaining 5%, they can use camlp4, camlp5, Fan, or write their own code generator without imposing it to anyone else.<br>

</div><div><br><br><br></div><div>Cheers<br></div><div>Seb<br><br><br><br></div><div>[1] <a href="https://github.com/mirage/dyntype">https://github.com/mirage/dyntype</a><br>[2] <a href="http://oud.ocaml.org/2012/#program">http://oud.ocaml.org/2012/#program</a><br>

</div><div><br><br><br></div></div></div>