[MLton-user] currying = staging (was: Fixpoints)
Vesa Karvonen
vesa.karvonen@cs.helsinki.fi
Mon, 7 Aug 2006 12:16:14 +0300
Quoting Stephen Weeks <sweeks@sweeks.com>:
[...]
> It's not always useful, but it often is, and if one isn't
> consistent, one can never convey that useful information.
[...]
I disagree. Whenever the use of staging isn't otherwise clear
from the context or signature one can always add a comment to
the signature. Personally, for library code, I very much like
to write a few paragraphs of text for each non-trivial signature
to explain, among other things, how a/the corresponding module is
intended to be used.
[...]
> In the cases where staging is actually used in an implementation
> it is usually very important that the client understand the
> staging and use it correctly.
[...]
Indeed. If staging really is important it warrants a comment
explaining why staging is used and how clients should use the
staging. The SML type-system does not prevent one from misusing
a staged function by applying it to all arguments repeatedly.
...
Your arguments are certainly technically valid and there is nothing
to disagree there, but like I said, my valuation of the advantages
and disadvantages is (and remains) different.
-Vesa Karvonen