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