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
[email protected]
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel