as_capabl
ただ、これをやるためにtype MyLens = ...とか定義し始めると "DO NOT REPEAT YOUSELF!!!!!!" ってなるんですけど、どうすればいいんだろう
You can even define lenses without incurring a dependency on the lens libraryhttp://hackage.haskell.org/package/lens-tutorial-1.0.3/docs/Control-Lens-Tutorial.html
makeLenses
をlens(やmicrolensなど)に依存しないでやるのを自動化できればいいって話ですよね。point :: Lens' Atom Point
ではなく point :: Functor f => (Point -> f Point) -> Atom -> f Atom
みたいなシグネチャを大量に書く羽目になると可読性がアレなので、結局Lensと同じtype宣言を各プロジェクトでやる羽目になってしまう問題です。結局lens依存しちゃっていいやってなるかもしれませんねGetting
と view
がほしくなってしましたし。Type
の方が確かに説明しやすそうですね!私はupvoteしました。hoge :: ()
と注釈加えたり () <-
とパターンマッチしてみたりしてわざとコンパイルエラー起こすの、確かに有効ですね!The main reason is that I feel that pipes is the wrong abstraction for resource-safety. I feel that a more restricted abstraction (like Shell from turtle, for example) is necessary to get predictable resource management guarantees and a nice user experience.
withFile
みたいな(中身は bracket
でしょうけど)関数くらい用意しても良いと思います。