The Expression problem
Helmut Eller
eller.helmut@gmail.com
Wed Aug 31 07:13:44 GMT 2022
> I think Common Lisp generics are problematic if you have a module system
> (or library system to use R7RS terminology) based on static name resolution.
> CL generics assume a generic function is global, and as each module is loaded
> it dynamically adds methods to the generic procedure. This is powerful,
> but seems contrary to modern module system. I've thought a bit about
> how best to
> specify multi-methods in a more disciplined way. It's not an easy problem.
I'm not sure what this has do with static name resolution specifically,
but I note that the Julia language seems to be somewhat successful
(ie. popular) with multi-methods that aren't all that different from
Common Lisp's generic functions.
It also seems me that the team behind the Fortress language tried pretty
hard to come up with a static type system for multi-methods. They made
some progress, but in the end they failed.
I think that for Kawa a Julia-style approach would be "good enough".
Especially, as one can use Java interfaces in places where static typing
is a concern.
Helmut
More information about the Kawa
mailing list