我想我有点理解应用函子在 Haskell 中是如何工作的,并且我将它们用于基本数据类型(也许,或者......)。但是,我通过以下示例发现了这个问题:
withPool pool = bracket (takeConn pool) (putConn pool)
可以用应用风格重写:
withPool = bracket <$> takeConn <*> putConn
我很惊讶它编译并且确实按预期工作,但是有人可以告诉我哪个 Applicative Functor 用于此以及它是如何定义的?
更新:我想我知道它是如何工作的,但我不知道它在哪里定义。