[GUI] I love GIO.
Fri, 21 Feb 2003 11:29:17 +0100 (MET)
On Wed, 12 Feb 2003, Daan Leijen wrote:
> Warning about the use of (:=): This symbol has been proposed by John
> Hughes for use in some future version of Haskell to distinguish
> monomorphic and polymorphic `let` constructs. (See, for example,
> http://www.math.chalmers.se/~rjmh/Globals.ps , section 6.) You might
> prefer to choose a different symbol, such as (:==) or (::=).
> Thanks for mentioning this. However, (:=) is a rather attractive
> constructor to use and I wonder if a monomorphic binding is used enoug
> to justify taking another operator away.
> It might be better after all to have a family of "let" bindings in a
> future haskell:
let -- lazy binding
let! -- strict binding
let$ -- > speculative binding (ie. try operationally strictly but maintain lazy
let# -- monomorphic binding ?...
> -- Daan.
The trouble with this idea is that let is associated with a BINDING GROUP,
not with an individual binding -- and indeed, some binding groups (e.g.
the top level!) have no associated let. You really want to be able to
mark, say, one top-level binding as monomorphic. So the right place to
attach this information is to the syntax of the binding itself -- that is,
the equals sign.