F[A]→F[B] に至る矢印を比べて、いろいろな型クラスをまとめて理解する、Cats 入門者向け記事。 はじめに この記事では、Cats の型クラスをテーマにする。 Cats は関数型な Scala プログラミング1のためのライブラリなので、この記事でも関数を扱う。関数型パラダイムで関数2というと数学の関数とだいたい同じだから、定義域の集合から値域の集合へのマッピングのことになる。ただし、数学では写像や射などと言うが、記号でも矢印(→)だし、図の上でも矢印なので、この記事では矢印ということにする。 また扱う型クラスとしては、Functor、Applicative、Monad の周辺をメインとする。前半ではそれらの Scala トレイトが要求する実装必須メソッドのうち、F[A]→F[B] に向かう矢印に還元できるもの3に着目して整理し、さらに後半では、それらの周辺に見られるもう一つのパター