まずatomicに分節する
考えている対象や操作に対する最もatomicな単位に分解する
例えば、recordを定義したらそれに含まれる全peropertyに対するgetterを用意するイメージ
これ以上分解できないという極論のatomicを常に考えるように意識する
ただし、それを全部atomicに実装するのは色々面倒なので、実際は妥協する
やりすぎると早すぎる抽象化っぽくなるかもしれないし、
単純に、記述量がめちゃくちゃ増えるかもしれない
ただし、そこは妥協しているという気持ちを持って妥協する
何らかの方針に沿ってグルーピングし、構造を作る
そこに抽象化の筋のようなものが現れる
グルーピングについても、atomicにやるなら、全ての組み合わせを想定すべきということになる
たぶん。
でもほんまか?という気持ちもする
この反例を具体的に出せるとスッキリしそう
これが本当なら、EitherとかIOとかをatomicに分解していけば、最終的な要素としてpureやjoinが出てくるのかもしれない
抽象化と逆の作業をいったんすることになる
一時的にちょっと考えることが増える