On Wed, Aug 6, 2008 at 11:36 AM, Gabriel Dos Reis wrote: > "Bill Page" <[EMAIL PROTECTED]> writes: > > (1) So you consider > > MyId(T:Type): with > identity: T -> T > == add > identity(x:T) == x > > much less `heavy weight' than a simple free function > > forall(T: Type) > identity(T x) == x
identity(x:T) == x > > ? > No, now that I think I am beginning to understand what you mean it seems to me that they are essentially identical. But I do consider the possibility of allowing arbitrary quantifiers (forall and exists) as a "heavy weight" solution. > (2) identity(2.2)$MyId(Float) precisely illustrates my point > that I have to supply the same information twice: once through > the type of the argument to identity(), and a second time > through the package to (the artificial) package to select from. > > I rest my case. > In the interpreter I do not have to specify the same information twice. In fact, I do not specify any type information at all. That specifying the package is necessary in the compiler seems to me to be just a design choice, i.e. the type inference is deliberately less powerful in order to force the library designer to be more explicit. Regards, Bill Page. ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ open-axiom-devel mailing list open-axiom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open-axiom-devel