Начиная с GHC 8.6.1, MissingH больше не включается в Stackage LTS nightly
, по-видимому, из-за несовместимости между MissingH и Control.Monad.Fail.MonadFail
.В частности, если я попытаюсь собрать моего пакета против распознавателя 8.6.1 и вручную добавить MissingH (из текущей ветки, поскольку версия Hackage отклонена из-за ограничения на базу), я получу:
/home/travis/build/orome/crypto-enigma-hs/.stack-work/downloaded/cfhWTjyPvK7n/src/Data/Compression/Inflate.hs:189:14: error:
• No instance for (Control.Monad.Fail.MonadFail InfM)
arising from a do statement
with the failable pattern ‘[x]’
• In a stmt of a 'do' block: [x] <- get_bits 1
In the expression:
do [x] <- get_bits 1
return x
In an equation for ‘get_bit’:
get_bit
= do [x] <- get_bits 1
return x
|
189 | get_bit = do [x] <- get_bits 1
| ^^^^^^^^^^^^^^^^^
Я не уверен, как поступить.Я ожидаю, что многие пакеты зависят от MissingH и будут выгнаны из LTS, если он не будет обновлен.
Существуют ли альтернативы MissingH, которые я мог бы использовать.MissingH активно поддерживается, и я должен ожидать, что это будет исправлено в ближайшее время?
Я не уверен, какую часть MissingH я использую ( как мне это выяснить в Haskell? ; я думаю Data.String.Utils
, по крайней мере оттуда), но мой импорт (по всем файлам) выглядит следующим образом:
import Control.Arrow
import Control.Exception (assert)
import Control.Monad (unless)
import Control.Monad.Except
import Control.Monad.Zip
import Control.Applicative
import Data.Monoid
import Data.List
import Data.List.Split (splitOn)
import qualified Data.Map as M
import Data.Maybe
import Text.Printf (printf)
import Data.Char (toUpper)
import Data.String.Utils (replace)
import Data.Char (chr, ord)
import Data.List (sort)
import Control.Applicative
import Data.Monoid
import Data.Char
import Data.List
import Data.List.Split (chunksOf)
import Data.String.Utils (replace)
import Text.Printf (printf)
Есть ли обратно совместимая замена для частей MissingH, которые япользуюсь?