Кстати, если хотите увидеть наброс, он бы выглядел так. Почему Functor и Contravariant это разные сущности одного уровня, судя по спецификациям?
Могу еще наборосить). Как короче всего обьяснить суть монады?