On Tue, 2007-10-02 at 09:10 -0700, Erick Tryzelaar wrote:
> On 10/2/07, skaller <[EMAIL PROTECTED]> wrote:

> >         open Foo;
> >
> > doesn't work.
> 
> Actually, It did work for me. I also used "open[T] Foo[T]", which
> worked as well.

Hmm .. I wonder why. Perhaps it automatically quantifies by 
unmentioned variables.

> 
> > The first [T] is a universal quantifier: in a function:
> >
> >         fun diag[T] (x:T)=>x,x;
> >
> > the [T] is misplaced, it should really be
> >
> >         fun[T] diag(x:T)=> x,x;
> 
> I thought about changing felix to use that previously. Should we move it?

Not yet, but lets keep it in mind. Ditto for modules, typeclasses etc.

There are some other nasties 
to solve. One peeve is this:

        f := { return x; };

Ok, so { .. } is a function unit -> T (possibly T is void).
But this is so ugly:

        x :=  { return a + 1; } ();
        x :=  (fun ()={ return a + 1; }) ();

UGGGG... :)

Gcc allows this:

({ int y = foo (); int z;
        if (y > 0) z = y;
        else z = - y;
        z; })

which unfortunately conflicts with Felix.



-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to