Re: Punning: Don't fix what ain't broken.
Tommy Thorn wrote: Koen Claessen: This brings us to another issue. Doesn't the following definition look a bit awkward? R{ x = x } Definitely wierd. The left and right-hand side denotes two different things, which AFAIK is the only place where `=' behaves like this. Wouldn't `-' have been a better choice? `-' bindings are never recursive, thus `R{ x - x } is less surprising, as the two x's can't be the same. What about using constructor syntax: R{ X x } ? Not to be taken too seriously... - Andreas
Re: Punning: Don't fix what ain't broken.
Koen Claessen: This brings us to another issue. Doesn't the following definition look a bit awkward? R{ x = x } Definitely wierd. The left and right-hand side denotes two different things, which AFAIK is the only place where `=' behaves like this. Wouldn't `-' have been a better choice? `-' bindings are never recursive, thus `R{ x - x } is less surprising, as the two x's can't be the same. It would be worth taking into account if completely revising the record handling of Haskell, but in itself it's too small a gain to be worthwhile. My humble opinion, Tommy