Предлагаю разрешить не изучать Arrow, так как он сложный и редко нужен, мне до не пригодился ни разу. Насколько я видел, в других библиотеках Arrow используют мало, больше профункторы. Полезно вспомнить, что каждая стрелка это по сути профунктор (хотя Arrow не наследуется от Profunctor, для любой стрелки можно реализовать профунктор), но стрелки сложнее, а профункторы мы учим на мидле.
В тайпклассопедии повторяется много материала по монадам и есть много ненужного. Можно указать явно, про что читать в тайпклассопедии (естественно, никто не запретит читать больше): Applicative (?), MonadFail, transformers (под вопросом, так как они объяснены в книгах), Semigroup, Monoid.
Остальное кажется лишним: Comonad, Arrow & co, Category, Bifunctor (есть на middle-1), MonadPlus & Alternative & Foldable & Traversable (есть на jun-2),
Предлагаю разрешить не изучать Arrow, так как он сложный и редко нужен, мне до не пригодился ни разу. Насколько я видел, в других библиотеках Arrow используют мало, больше профункторы. Полезно вспомнить, что каждая стрелка это по сути профунктор (хотя Arrow не наследуется от Profunctor, для любой стрелки можно реализовать профунктор), но стрелки сложнее, а профункторы мы учим на мидле.
В тайпклассопедии повторяется много материала по монадам и есть много ненужного. Можно указать явно, про что читать в тайпклассопедии (естественно, никто не запретит читать больше): Applicative (?), MonadFail, transformers (под вопросом, так как они объяснены в книгах), Semigroup, Monoid.
Остальное кажется лишним: Comonad, Arrow & co, Category, Bifunctor (есть на middle-1), MonadPlus & Alternative & Foldable & Traversable (есть на jun-2),