@ has joined the channel
f :: a -> b -> c を f :: (a, b) -> c に変換するには uncurry ですが、 f :: a -> b -> c -> d -> e を f:: (a, b, c, d) -> e に変換するイディオムのようなものはあるのでしょうか。(\(a, b, c, d) -> f a b c d) なんでしょうか。最近 (f .) というイディオムを知ったのでうまく表せるのかなと思った次第です。fst や snd のような、中身を取り出す関数が標準でないため、その手のイディオムでやるのは難しい気がします!但し、spliceをして生成されるコードに型注釈を書けない(と思う)のでSigEというコンストラクターでできるっぽいです。
stack exec ghci -- lens-sample.hs
stack build --only-dependencies
stack build lens