Блин, наткнулся только что на то, что в скоупе нужен Sync, но мне нужно и свои ошибки как-то обрабатывать. Добавляю ApplicativeError[F, MyError] и оно не работает, потому что Sync = MonadError[F, Throwable].
Как из такой ситуации выходить? Мне от ApplicativeError нужен метод fromEither.
вынеси код, которому нужен Sync из скоупа где нужен AppErr.