Re: 'a versus ('a)
"Gabriel Scherer [email protected] [ocaml_beginners]" <[email protected]> Mon, 30 May 2016 17:28:32 -0400
| Newsgroups | gmane.comp.lang.ocaml.beginners |
|---|---|
| Message-ID | <CAPFanBF2oCnQawatopLrhsSfFPuEiWxup5bvLo_Tn93TUoXL1Q@mail.gmail.com> |
(* phantom type: http://camltastic.blogspot.com/2008/05/phantom-types.html *) type _ foo = Foo (* GADT: http://caml.inria.fr/pub/docs/manual-ocaml-4.03/extn.html#sec238 *) type _ tag = | TInt : int tag | TFloat : float tag On Mon, May 30, 2016 at 4:54 PM, Manfred Lotz [email protected] [ocaml_beginners] <[email protected]> wrote: > Thanks for your answer. > > On Mon, 30 May 2016 14:51:40 -0400 > "Gabriel Scherer [email protected] [ocaml_beginners]" > <[email protected]> wrote: > >> If you have several type parameters you need to write ('a, 'b, 'c) for >> example. > > Yes. > >> For a single parameter, both are perfectly equivalent, so you >> can use the one you like best. I think just 'a is more common; I don't >> remember seeing ('a) in the wild, although it could make sense for >> consistency or if in a temporary state if you had two parameters and >> are currently editing the code to try it with only one. >> > > Good. For me 'a without parenthesis looks more natural. > >> You can also not give a name to the parameter by using _ in this >> position. This is sometimes used with some advanced features/patterns: >> when defining a phantom type (where the parameter is not used at all), >> or when using a GADT (where the parameter value will be set by each >> constructor separately). >> > > Hm, I have to admit that in order to understand this better I would > need an example. > > >> On Mon, May 30, 2016 at 2:32 PM, Manfred Lotz [email protected] >> [ocaml_beginners] <[email protected]> wrote: >> > I have seen both 'a and ('a) in type definitions like this: >> > >> > type 'a tree = Leaf of 'a | Node of 'a tree * 'a tree;; >> > >> > type ('a) tree = Leaf of 'a | Node of 'a tree * 'a tree;; >> > >> > It seems they are equivalent. >> > >> > Is there a reason why I would write ('a) instead of just 'a? Or is >> > is just a matter of taste? >> > >> > -- >> > Manfred >> > >> > >> > >> > >> > ------------------------------------ >> > Posted by: Manfred Lotz <[email protected]> >> > ------------------------------------ >> > >> > Archives up to December 31, 2011 are also downloadable at >> > http://www.connettivo.net/cntprojects/ocaml_beginners The archives >> > of the very official ocaml list (the seniors' one) can be found at >> > http://caml.inria.fr Attachments are banned and you're asked to be >> > polite, avoid flames etc. ------------------------------------ >> > >> > Yahoo Groups Links >> > >> > >> > > > > > ------------------------------------ > Posted by: Manfred Lotz <[email protected]> > ------------------------------------ > > Archives up to December 31, 2011 are also downloadable at http://www.connettivo.net/cntprojects/ocaml_beginners > The archives of the very official ocaml list (the seniors' one) can be found at http://caml.inria.fr > Attachments are banned and you're asked to be polite, avoid flames etc. > ------------------------------------ > > Yahoo Groups Links > > >