caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Geoffrey Alan Washburn <geoffw@cis.upenn.edu>
To: caml-list@inria.fr
Subject: Re: Void type?
Date: Mon, 30 Jul 2007 09:35:00 -0400	[thread overview]
Message-ID: <46ADE904.9060906@cis.upenn.edu> (raw)
In-Reply-To: <46ADE367.8020801@janestcapital.com>

Brian Hurt wrote:

> I'm not sure I agree with this- especially the proposition that unit == 
> truth.  

There really isn't anything to disagree with.  That is how the 
Curry-Howard Isomorphism is defined.

> That would make a function of the type:
>    unit -> 'a
> equivelent to the proposition "If true then for all a, a", which is 
> obviously bogus.  The assumption of the Ocaml type system is that you 
> can not form "false" theorems within the type system (these correspond 
> to invalid types).  

Firstly, as I said, OCaml's type system cannot be treated as a 
consistent logic: A logic where false cannot be proven.  This is a 
consequence of its many impure language features (including general 
recursion).

However, there is a difference between being unsafe and not being usable 
as a logic.

> So either this assumption is false, or unit is the 
> void type in the Ocaml type system.

Because it is possible to prove false using the OCaml type system, it is 
of course possible to prove anything, including a seeming proof that 
unit is void.  Just as you can prove that an int is a function.

> More pragmatically, I don't see any situation in which void can be used 
> where unit couldn't be used just as well, if not better.  

On the whole, the nature and utility of void is technical point that is 
not likely to come up typical programs.  It will probably become more 
relevant as dependently typed languages become more mainstream.

> The type of bottom (the function that either throws an exception or 
> never returns) in Ocaml is unit -> 'a.   Note that the return type of 
> this function, since it's completely unconstrained, can unify with any 
> other type.

I will again point out that void and bottom should not be conflated. 
Bottom is only really relevant in languages with subtyping, and does not 
have a logic interpretation in traditional logics.


  parent reply	other threads:[~2007-07-30 13:35 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
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 [this message]
2007-07-30 13:41                         ` 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=46ADE904.9060906@cis.upenn.edu \
    --to=geoffw@cis.upenn.edu \
    --cc=caml-list@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;
as well as URLs for NNTP newsgroup(s).