Since there's talk of <span style="text-decoration: underline;"></span><a href="http://hackage.haskell.org/trac/haskell-prime/wiki/CompositionAsDot">removal of the composition operator in Haskell-prime</a>, how about this:
<br><br>Instead of:<br>foo = f . g<br><br>you write:<br>foo = .g.f<br><br>A leading dot would mean, "apply all unnamed parameters to the function on the right". A trailing dot would mean, "apply the result of the left to the function on the right".
<br><br>Prelude> notNull = .null.not<br>=> [a] -> Bool<br><br>notNull [1,2,3]<br>=> True<br><br>[1,2,3].notNull<br>=> True<br><br>[1,2,3].null.not<br>
=> True<br><br><br>I like this because it has the same perks as the composition operator, yet it looks like OO code and the data flows nicely from left to right. It reads especially well when using the bind operator on the same line.
<br><br>Thoughts?<br><br>Thanks,<br>Greg<br><br><br><br><br><br><br>