Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] assertions or exceptions?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-07-15 (21:17)
From: skaller <skaller@u...>
Subject: Re: [Caml-list] Unboxing options, was RE: assertions or exceptions?
On Fri, 2004-07-16 at 03:20, John Prevost wrote:
> On Thu, 15 Jul 2004 10:38:14 -0500 (CDT), Brian Hurt <> wrote:
> > One of the problems with returning error conditions instead of throwing
> > exceptions is the cost of boxing a 'a option.  I'd like to advocate for
> > the idea of unboxing 'a options.
> This has been discussed before.  The essential problem is this:
> Currently:
> type 'a option is not the same as type 'a option option
> Some Some 1 is not the same as Some 1
> Some None is not the same as None
> With unboxed options:
> type 'a option is the same as type 'a option option
> Some Some 1 is identical to Some 1
> Some None is identical to None

This is wrong. The representation being suggested is:

None -> NULL
Some 'a -> pointer to 'a

Clearly this represntation is faithful and nothing
more than an interpretation of the corresponding C 

Some Some 1 is obviously distinct from Some 1 as reqiuired:
pointer to pointer to 1 is distinct from pointer to 1.
Some None is a pointer to NULL, which is distinct from 
None which is just NULL.

Perhaps this won't work with the Ocaml runtime but
there is no problem with the typing.

John Skaller,
voice: 061-2-9660-0850, 
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: