[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