[bitc-dev] BitC Overloading
Jørgen Hermanrud Fjeld
jhf at hex.no
Fri Jan 28 06:39:40 EST 2005
I just wondered if you have considered the work on extensional polymorphism
by Furuse  as a framework for
As far as I understand that would give the programmer explicit control
over overload resolution, as well as provide static type safety.
Also I wondered work on multi-staging  and macros  would be relevant?
Especially since multi-staging researched fro O'Caml can be statically
On Fri, Jan 28, 2005 at 02:08:06AM -0500, Swaroop Sridhar wrote:
> I was actually thinking for a while as to how overloaded functions in BitC
> seem to have the power (of apparent polymorphism) that polymorphic
> functions in ML do not. But after reading Wright's paper[*], it became
> clear that they can do so only at the cost of transparency.
> We can take two views about transparency here:
> i) Transparent (meaning of visible): Unlike a eta-expanded-polymorphic
> function, we canmake it clear to the programmer that a function that
> has a polymorphic type actually represents a set of overloaded functions.
> It is now the programmer's responsibility to write correct code.
> ii) Transparent (meaning invisible): Or, we may decide that the above
> decision may result in bugs that are too subtle, and that it is not
> feasible to rely on the programmers to get it right.
> If so, we will have to impose the value restrictions as in ML.
> However, the saving grace is that Wright's paper also made the following
> "1. Realistic ML code seldom computes polymorphic procedures or data
> 2. When polymorphic procedures are computed, the computation is almost
> always functional."
> [*] A. K. Wright. Simple imperative polymorphism. LISP and Symbolic
> Computation, 8(4), December 1995.
Sincerely | Homepage:
Jørgen | http://www.hex.no/jhf
| Public GPG key:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: Digital signature
Url : http://www.coyotos.org/pipermail/bitc-dev/attachments/20050128/38663685/attachment.bin
More information about the bitc-dev