|
From: | Ralf Hemmecke |
Subject: | Re: [Aldor-l] [Axiom-developer] "has" and "with" (was curious algebra failure) |
Date: | Tue, 14 Aug 2007 12:41:46 +0200 |
User-agent: | Thunderbird 2.0.0.6 (X11/20070728) |
| > Rather I mean `coercible'. For example an expression of type Integer | > is coercible to Float because Float exports the following function| > | > coerce : Integer -> % | | That is exactly what Aldor does *not* do. It never applies "coerce" if one| doesn't explicitly call for it. At the moment I find Aldor much better in this | respect. You should consider that some people might implement a function that | is not a nice "coerce" (although their function carries this name). I don't think there is anything we can do about that. We can't police people that name coerce a function that does pretend. Sometimes that is bad, sometimes that is good.
I've stated my concerns. What else can I do?I was happy that automatic coercion went away when I switched from Axiom to Aldor. I don't want to go back.
Yet another reason against auto coercion.There might be a situation when coerce: A->B is needed and none is in scope but there were coercions available such that A->X->B or A->Y->B. We all want that both compositions yield the same result. Now let's suppose we enforce that (at least in the documentation). There is still the issue of efficiency. The path over X might be more costly than the path over Y. Which one does the compiler choose and how can you see that from the source code?
I like this extra bit of redundancy in the code. It is good for people who are not the authors. (And it probably makes compilation faster.)
Ralf
[Prev in Thread] | Current Thread | [Next in Thread] |