On Mon, May 12, 2008 at 3:08 PM, Gabriel Dos Reis wrote:

> ...  Indeed, the compiler seems to eventually resolve to the
> right symbol.  Consequently, there must be a specification (e.g.
> an algorithm) that systematically work without producing the
> above diagnostics.   In my view, the context should help decide
> which interpretation of a symbol is desired, but that is not so
> simple because when faced with
>
>            print pol.degree
>
> it is not always immediately clear whether '.degree' refers to a
> real function or a field of record.
>
> For the moment, I'm going to downgrade the above diagnostic to
> `warning'.  And I would appreciate to know what people think.
>

I am not able to say whether ignoring these "semantic errors" is a
good thing or not, but downgrading the message to a warning makes
sense to me since apparently that is how the compiler actually treats
it now anyway ...

But I do have one side comment: As I have argued elsewhere, I think
that semantically there is no good reason to distinguish a "real
function" from a "field of a record". In fact a "field" is just a
projection function when the record is viewed as a (categorical)
product. There should be no separate name space. E.g.

   a: Record(a:A, b;B) -> A
   b: Record(a:A, b;B) -> B

The built-in Record constructor should provide such functions.

Regards,
Bill Page.

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

Reply via email to