I am using a small database pool in my web app. And this particular function:
withPool pool = bracket (takeConn pool) (putConn pool)
can be rewritten in applicative style:
withPool = bracket <$> takeConn <*> putConn
Arguably it is just as readable and much more elegant. So naturally, I want to write it like that. But database connection pool supposed to be fast, and I am afraid that this style introduces unnecessary overhead.
So my question is, how much overhead (if any) does use of applicative functors incur in Haskell? Are there any benchmarks?