Version française
Home     About     Download     Resources     Contact us    
Browse thread
RE: Syntax for label, NEW SOLUTION
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Toby Moth <tmoth@n...>
Subject: RE: Syntax for label, NEW SOLUTION
I have kept out of the label debate as I haven't had a chance to really play
with 2.99
yet, have hardly ever used OLabl, and generally feel more optimistic about
what labels
might offer me than terrified about how Ocaml might suffer. 

So, I am just throwing an ill-cautioned suggestion when I say that it looks
to me
as if  Claudio is onto something.

Would it be possible to set up something along the lines:

MyModule:foo       need labels
MyModule.foo       labels checked if used

open MyModule:    needs labels
open MyModule     labels checked if used

Then the only case where you are committed is when you are inside a module
that you are actually writing using functions that you have just defined.
But if you are using labels inside your own module then surely you can't
object
to labels......
then surely you are happy with a label enforcing mode.

I suppose then that you would be able to write

Mod1.Mod2:foo
Mod1:Mod2:foo

and it would mean the same thing.

Is this impossible to implement ?


Toby Moth

> -----Original Message-----
> From:	Claudio Sacerdoti Coen [SMTP:sacerdot@students.cs.unibo.it]
> Sent:	22 March 2000 18:15
> To:	caml-redistribution@pauillac.inria.fr
> Subject:	Re: Syntax for label, NEW SOLUTION
> 
> On Mon, Mar 20, 2000 at 19:25:04 +0100, Christophe Raffalli wrote:
> > Ok, and I agree ! What I mean is that it could happend sooner if there
> > was a mode that is conservetive over both modern and classic modes. I
> > will give a first working answer ...
> 
> There could be also another simple, backward compatible (w.r.t. OCaml)
> solution that would get rid of the "labels in the library" fight.
> Only, I don't know if it is (semantically) feasible. Here it is:
> 
> If I write
> 
>  Moo.foo x a:y z;;
> 
> or
> 
>  open Moo;;
>  foo x a:y z;;
> 
> or
> 
>  let module M = Moo in
>   M.foo x a:y z;;
> 
> than foo is label-checked as in classic mode.
> 
> Instead, if I write 
> 
>  open Moo in commutating mode;;  (* or something like that *)
>  foo x a:y z;;
> 
> than foo is label-checked as in modern mode.
> 
> So, for example, I could write
> 
> open List;;
> open Unix as in moder mode.
> open Tk as in moder mode.
> 
> What am I overlooking?
> 
> 					C.S.C.
> 
> -- 
> -----------------------------------------
> Real Name: Claudio Sacerdoti Coen
> Graduating students at the
>  Department of Computer Science,
>  university of Bologna
> Address: via del Colle n.6
> 	 S. Lazzaro di Savena (BO)
> 	 Italy
> e-mail:  sacerdot@cs.unibo.it
> -----------------------------------------