[
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: | Remi VANICAT <vanicat@l...> |
| Subject: | Re: [Caml-list] External typing |
"Warp" <warplayer@free.fr> writes: > Hi > I have something like : > > external f1 : my_very_long_indentifier -> one_other_id -> int = "f1" > external f2 : my_very_long_indentifier -> one_other_id -> bool = "f2" > .... > > And I would like to have : > > type 'a conv = my_very_long_indentifier -> one_other_id -> 'a > > external f1 : int conv = "f1" > external f2 : bool conv = "f2" > > Which is - you'll agree - a lot nicer. > > But the computer yield to me "External identifiers must be > functions" when I try this. Is that notation really impossible with > externals or is there some tip ? Does the compiler shouldn't know > that "int conv" is a functional type ? >From the ocaml documentation, you can read that "The arity (number of arguments) of a primitive is automatically determined from its Caml type in the external declaration, by counting the number of function arrows in the type." So for example if you want a c function taking 1 int and returning a function from int to int : type int2int = int -> int external f2 : int -> int2int = "f2" so you can't do what you want with ocaml, the only solution is to use camlp4 -- Rémi Vanicat vanicat@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~vanicat ------------------- 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