On Mon, Jun 18, 2012 at 5:37 AM, Wojciech Meyer < wojciech.meyer@googlemail.com> wrote: > Hi Bob, > > Hi, http://www.seas.upenn.edu/~hongboz/hongbo_zhang_files/fan.zip It's planned to release after ocaml's 4.00 release since some ideas still need to be polished but you can have a look to get a general idea. One thing to add is that *Fan is not just a generic printer, it is a framework that* *you can write generic printer or whatever you want in tens of lines* :-) > Your example generators indeed look very interesting! I would need to > look into more details into that tonight, but you didn't provide a link > for the library to download. > > Thanks, > Wojciech > > On Mon, Jun 18, 2012 at 2:26 AM, bob zhang wrote: > > Hi, List > > Fan , a type-directed generic programming framework for OCaml > > Using Fan, a programmer can easily create generic libraries > > for type-directed > > programs, including pretty printing, equality, serialization and > > deserialization, data generation, generic traversals, folds, etc. > > > > Compared with deriving, Fan is mainly different in such aspects: > > 1. It generate code without touching your source tree, module is > > the basic unit. We generated code for all modules in ocaml's compiler > > parsing/, typing/, and bootstrapped camlp4 source tree itself. > > Check here > http://www.seas.upenn.edu/~hongboz/hongbo_zhang_files/fan_doc/ > > All modules beginning with Fan_ocaml is generated code for ocaml compiler > > Fan_camlp4ast_o is for camlp4ast itself. > > 2. composable. All extended syntax are in our mini dsl language "fan" > > without polluting the original syntax > > 3. Lightweight Check the modules gen_plugins we write generic > printing, > > equality, map, fold traversal, etc, 9 generic plugins in less than 200 > lines > > of code. > > > > It's still at alpha stage, and I have some ideas that need to be > polished, I > > would be happy to hear any feedback. We hope that FAN can benefit ocaml > > community as a camlp4 platform. Fan's code base is pretty small, all the > Ast > > Transformations are based on quasi-quotations. The only exception is > TyDcl > > which has no counter-part and Ast Lifting, since the current camlp4 does > not > > support macro syntax in common lisp something like ``(,,). > > > > Many Thanks > > -- > > -- Bob > -- -- Bob