return が圏論的用語とどうこう、手続き型言語のreturnと云々はともかく、Hakellのクラス体系のMonadがApplicativeのサブクラスでないのは審美的に気持ち悪いで、なんとかして欲しい。
WrapMonadとか意味わからなすぎる。

あと、Functorクラスの(.)とidは別のクラスにしておけとか、ArrowクラスのarrがArrowChoiceと対称性を損なっていてキモイとか。