Как я могу сохранить свой пакет на Haskell в LTS без MissingH?
Начиная с GHC 8.6.1, MissingH больше не включается в Stackage LTSnightly
по-видимому, из-за несовместимости между 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 я использую ( как мне это понять в Хаскеле?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, которые я использую?