mytransaction = do {
 x0 <- readTVar xvar0
 x1 <- readTVar xvar1
 :
 xn <- readTVar xvarn
 return $ foo x0 x1 .. xn
}

Versus

mytransaction = return $ foo $(readTVar xvar0) $(readTVar xvar1) ..
$(readTVar xvarn)

ah, a concrete example. but isn't that the typical use case for ap?

mytransaction = foo `liftM` r xvar0 `ap` r xvar1 ..
   where r = readTVar

claus

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to