Hi Sebastien,<div> I agree with you that adding run-time types. To clarify a bit, Fan is not invasive as Camlp* or ppx(the current ppx proposal seems to be quite large change to the compiler), it does not need any change to the compiler, so it does not impose you to use it.</div>
<div>For the deriving and type_conv syntax extension conflict, this is not the Fault of Camlp*, you can avoid </div><div>it while still using Camlp*, the solution is adopted by Fan</div><div>{:ocaml|</div><div>type u = A of int </div>
<div>|}<br>{:derive| whatever you like|}<br><div class="gmail_quote">On Tue, Feb 5, 2013 at 10:29 AM, Sebastien Mondet <span dir="ltr"><<a href="mailto:sebastien.mondet@gmail.com" target="_blank">sebastien.mondet@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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" target="_blank">https://github.com/mirage/dyntype</a><br>[2] <a href="http://oud.ocaml.org/2012/#program" target="_blank">http://oud.ocaml.org/2012/#program</a><br>
</div><div><br><br><br></div></div></div>
<br>_______________________________________________<br>
wg-camlp4 mailing list<br>
<a href="mailto:wg-camlp4@lists.ocaml.org">wg-camlp4@lists.ocaml.org</a><br>
<a href="http://lists.ocaml.org/listinfo/wg-camlp4" target="_blank">http://lists.ocaml.org/listinfo/wg-camlp4</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>-- Regards, Hongbo
</div>