https://combot.org/chat/-1001043143583 Ссылки на полезные ресурсы: https://ruhaskell.org/links.html ; Информация о мероприятиях: https://gist.github.com/qnikst/a96cac661be80d126d0829f2ced1916e
error: Package ‘xml-lens-0.3.1’ in /nix/store/lxb3a59i0bncl2caq9bd39hkavjragjp-nixpkgs/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix:726426 is marked as broken, refusing to evaluate.
Попробовал еще другую ллм, вот результат https://claude.ai/public/artifacts/865ccbab-dca1-4898-8c3d-c7b50f0ea8db
Читать полностью…эта фигня, правда, на эррор не упадёт, а продолжит своё существование
Читать полностью…broken=false; и форкни если не собирется, вроде не мертвая либа и активность контрибьютеров есть
Читать полностью…А есть чё-нибудь линзовое для xml
кроме xml-lens ничего нет, и хорошо
С другой стороны так будет использоваться анлифтио, но без инвазивного катча
Читать полностью…Но почему runInIO, если есть встроенный catch у анлифто?
Читать полностью…-- | A newtype wrapper that implements MonadError using IO exceptionsЧитать полностью…
newtype ErrorT e m a = ErrorT { runErrorT :: m a }
deriving (Functor, Applicative, Monad, MonadIO, MonadUnliftIO)
-- | Custom exception wrapper to hold our error type
data ErrorException e = ErrorException e
deriving (Show, Eq, Typeable)
instance (Show e, Typeable e) => Exception (ErrorException e)
-- | MonadError instance that uses IO exceptions under the hood
instance (MonadUnliftIO m, Show e, Typeable e) => MonadError e (ErrorT e m) where
throwError e = ErrorT $ liftIO $ throwIO (ErrorException e)
catchError (ErrorT action) handler = ErrorT $ do
withRunInIO $ \runInIO ->
runInIO action `catch` (\(ErrorException e) -> runInIO $ runErrorT $ handler e)
Всегда было интересно: по какому принципу разработчики библиотек ограничивают версии зависимых либ ? Просто ставят их между близкими major релизами ? (первое число версии, если я правильно понимаю)
Читать полностью…newtype ToStderr a = MkToStderr {runToStderr :: a}Читать полностью…
deriving (Functor, Applicative, Monad) via Identity
instance MonadError ToStderr where
fail = unsafePerformIO . hPutStrLn stderr