On Wednesday 10 November 2010 1:37:41 pm Stephen Tetley wrote: > Is it just me or does this bit in the proposal: > > m .lookup key > .snd > .reverse > > Which translates to this: > > reverse . snd . (\m -> lookup m key) $ m > > make no sense and refuse to type check - i.e lookup is producing a > Maybe not a pair for second?
I think it is intended to be parsed as follows: ((m .(lookup key)) .snd) .reverse So you get: reverse . snd . lookup key $ m The intention is, I assume, strictly to be able to resolve names like lookup on arguments other than the first. But I suppose it potentially raises questions about what all expressions are allowed to be resolved in this way. Is: m .(\m' -> lookup key m') valid? Or: m .(lookup key2 &&& lookup key2) where we resolve two overloaded functions (the same one twice, here)? The simplest answer is obviously, "no; only partially applied identifiers." -- Dan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe