覚えておきたいのでメモ。
x <$ guard (y == z)
こういう式をCatsで表現したいとき、Catsには<$
も$>
も、そのままの演算子では存在しない。そのかわり、Catsにはas
という名前で同等のメソッドがある。
F[A] => B => F[B] as
つまりこういう感じに書くことができる。
(y == z).guard[Option].as(x)
これがF[A] => F[B] => F[B]
になった場合は、Haskell同様に*>
が使える(同様に、<*
も使える)。