Arrow の *** も実装。
Applicative のデフォルトの定義は、 f * x とあったら nil でも false でも true でも f.(x) のように動作
f * x * y はどう動作する？　常識的に考えれば f(x, y) 。だけど (f * x) * y と考えると f(x(y), y) というのも自然な動作な感じもする。