Re: I love GIO.
John Hughes <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.gui |
|---|---|
| Message-ID | <[email protected]> |
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 > semantics) 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. John