Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Arnaud Spiwack <aspiwack@lix.polytechnique.fr>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Re: Void type?
Date: Sun, 29 Jul 2007 22:06:55 +0200	[thread overview]
Message-ID: <46ACF35F.5070102@lix.polytechnique.fr> (raw)
In-Reply-To: <20070729170216.GA8137@furbychan.cocan.org>

Richard Jones a écrit :
> On Sun, Jul 29, 2007 at 02:58:23PM +0200, Arnaud Spiwack wrote:
>   
>> Here is what you can do with void1 and not with void2 :
>> type void1 = { v: 'a. 'a };;
>> # let void1_elim x = x.v;;
>> val void1_elim : void1 -> 'a = <fun>
>>     
>
> Maybe I should rephrase the question then.  What use is this function?
> The only Google searches for void type and the "elimination principle"
> all seem to point back to this very thread.
>
> Rich.
>   
Well, I don't really know why to use a void type in OCaml as well, thus 
my answer may be quite abstract. But when I provide a new type, I give a 
way to build it and a way to use it. In the case of the void type, there 
is no way to build an element of that type, but there is a way to use 
one such element : a void element can be used in place of any type.

I don't know if it can come handy (it does in certain cases for 
dependant type programming in my experience). But it's part of the 
semantics of the type somehow. It is the function which says "void has 
no element". It occures to me that it might be needed if you need a void 
type.

One reason why it might be useful, is that it gives an equivalence 
between the types  t -> void   and  t -> 'a  (for any type t). Earlier 
in this thread it was mentioned that these sort of functions could be a 
reason to use a void type.

Since I have no concrete example in mind, I won't be able to be more 
specific. Still, there is something morally satisfying in being able to 
define this function without cheating, even if you don't need it. Uh 
well... then... what is morally satisfying is really a matter of tastes, 
I guess.


Arnaud Spiwack


  reply	other threads:[~2007-07-29 20:06 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-28  4:14 Stefan Monnier
2007-07-28  4:33 ` [Caml-list] " Erik de Castro Lopo
2007-07-28  4:51 ` Chris King
2007-07-28 18:49   ` Stefan Monnier
2007-07-28 18:53     ` Basile STARYNKEVITCH
2007-07-29  0:48       ` Stefan Monnier
2007-07-28 18:57     ` Arnaud Spiwack
2007-07-28  6:12 ` Daniel de Rauglaudre
2007-07-28  6:15 ` Chung-chieh Shan
2007-07-28  8:22   ` [Caml-list] " rossberg
2007-07-29  6:31     ` Chung-chieh Shan
2007-07-29 11:05       ` [Caml-list] " Arnaud Spiwack
2007-07-29 11:16         ` Jon Harrop
2007-07-29 11:36           ` Arnaud Spiwack
2007-07-29 12:43             ` Richard Jones
2007-07-29 12:58               ` Arnaud Spiwack
2007-07-29 17:02                 ` Richard Jones
2007-07-29 20:06                   ` Arnaud Spiwack [this message]
2007-07-29 22:55                     ` Brian Hurt
2007-07-30  4:40                     ` skaller
2007-07-30 23:13                       ` Brian Hurt
2007-07-31  8:52                         ` Richard Jones
2007-07-31 13:08                           ` Chris King
2007-07-31 15:27                             ` Markus Mottl
2007-08-01 11:37                         ` Tom
2007-08-01 16:23                           ` Markus Mottl
2007-07-30  4:44                     ` Geoffrey Alan Washburn
2007-07-30 13:11                       ` [Caml-list] " Brian Hurt
2007-07-30 13:32                         ` Christopher L Conway
2007-07-30 13:35                         ` Geoffrey Alan Washburn
2007-07-30 13:41                         ` [Caml-list] " Chris King
2007-07-30 17:43                         ` Christophe Raffalli
2007-07-30 17:58                         ` Markus Mottl
2007-07-30 14:27                   ` Jeff Polakow
2007-07-28  7:58 ` Sébastien Hinderer
2007-07-28  8:13   ` [Caml-list] " Basile STARYNKEVITCH
2007-07-28 12:29     ` Christophe TROESTLER
2007-07-28 13:36     ` Brian Hurt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46ACF35F.5070102@lix.polytechnique.fr \
    --to=aspiwack@lix.polytechnique.fr \
    --cc=caml-list@yquem.inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox