Browse thread
[Caml-list] Camlp4: generating printers of types
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Daniel de Rauglaudre <daniel.de_rauglaudre@i...> |
| Subject: | Re: [Caml-list] Camlp4: generating printers of types |
Hi, On Mon, Dec 09, 2002 at 06:01:41PM -0800, Ken Rose wrote: > 1. Is there a clean way to handle (sum) types with constructors with > multiple module qualifications? I hacked the example to deal with > Foo.bar, but it doesn't seem to extend automatically to Foo.Bar.baz. As > I understand it, I'd need a new pattern for each additional uid. I don't understand that: in the type definition, there is no qualifications for the constructors. > 2. How are tuples represented in camlp4's syntax? This is so I can > match them when analyzing a type. In Revised syntax, they are like in normal syntax, but the parentheses are compulsory. > 3. This is the big one. When working on a type like: > type t = int > with the obvious extention to Daniel's code, the preprocessor produces > type t = int let rec print_t = print_int > Which the compiler rejects with "This kind of expression is not allowed > as right-hand side of `let rec'" I haven't been able to figure out a > way to sneak it past, either. What's going on here? Why can't I rename > print_int? This message of OCaml just means that there are syntactic restrictions of the "let rec". In this case, you should produce either a "let" without "rec" or, an eta extension: "let rec print_t x = print_int x". -- Daniel de RAUGLAUDRE http://cristal.inria.fr/~ddr/ ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners