capability: the ReaderT pattern without boilerplate
ReaderT patternの記事では実際には我々が capabilities と呼ぶeffectの記述方法こそが核心であった。
この記事では GHC 8.6 -XDerivingVia を使いながらcapabilityというパターンの有用性を説明する。
The difference with the MTL
capabilitiesはMTLスタイルて相当異なる。
MTLスタイルにおいて型クラスは どうやってそのモナドを構成するか を表現する。
The problem
Deriving Via
Enter capability
A worked example: combining writers without guilt
A word on free monads