型aがMonadならApplicativeでもあるわけですが、
実用的にreturnとpureが異なるというのは有り得るのでしょうか?