re: desugaring.  Thanks Andrew, that worked great!

I have another, easier question from the same code in RWH:

bogusTransfer qty fromBal toBal = do
    fromQty <- atomically $ readTVar fromBal
    [snip]

Can someone please explain the ($) function in English? From the type signature, it seems to be an "apply function", but I can't quite explain when we use it. Clearly, it is used throughout RWH but I haven't found a good explanation.

My guess is that it is when we want an "execution" of a function rather than a mere reference to it. Is that accurate?

thanks again
Michael

--
----------------------
Michael Easter
http://codetojoy.blogspot.com: Putting the thrill back in blog

http://youtube.com/ocitv -> Fun people doing serious software engineering