I don't know whether this is related or not, but I have the following somewhere in my code:

-- the following is apparently eqivalent to (\ i -> foo (bar i) i).
-- pointfree suggests so. i don't understand why.
(foo =<< bar)

Is this a similar situation?

--
Ozgur Akgun