Thomas says:
> AN ASIDE: Actually, in this example, what I *really* wanted was a
> definitional list comprension (Kevin, was that what you called it?
> You wrote a note about this ages ago):
> So that a qualifier can also be a let or where definition,
> perhaps like:
>
> [ .. | ..... (lsy, l, s:r)|isNonterm s = all_kernel_item_tab ! kno ]
>
> The problem with this syntax is that = looks too much like ==.
We've always had these in Id list comprehensions. A qualifier can
either be pat <- listexp (pat drawn from list) or pat = exp (for
binding names to parts of exp). We've found this to be extremely
useful. They're used all the time, and to my knowledge there's never
been any confusion with == (in Id, also, == is the symbol for
equality).
Nikhil