lensパッケージがどのように機能するかについて、ゆっくりと頭を包み込もうとしています。Edward のスライド ( http://comonad.com/haskell/Lenses-Folds-and-Traversals-NYC.pdfStore s a ) を読んでいて、スライド 8 と 9の定義について質問があります。
newtype Lens s a = Lens (s -> Store s a)
data Store s a = Store (s -> a) s
定義が逆?Store s aレンズがゲッターとセッターのペアである場合、次のように定義する必要があるように思えます。
data Store s a = Store (a -> s) a
ここで、最初のコンストラクタ パラメータはセッター (データ構造を入れてa返すs) で、2 番目はゲッター (データ構造aから をフェッチするs) です。
それがスライドのエラーなのか、それとも私の理解が間違っているのか、誰でも確認できますか?説明してください。
ありがとうございました。