Since GHC 8.6.1, MissingH is no longer included in Stackage LTS nightly
, apparently because of incompatibilities between MissingH and Control.Monad.Fail.MonadFail
. Specifically, if I try to build my package against an 8.6.1 resolver and manually add MissingH (from a current branch, since the Hackage version is rejected due to a constraint on base), I get:
/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
| ^^^^^^^^^^^^^^^^^
I'm unsure how to proceed. I expect that many packages have a dependency on MissingH and will get kicked out of LTS if it is not updated.
Are there alternatives to MissingH that I could use. Is MissingH actively maintained and should I expect it to get fixed soon?
I'm not sure what part of MissingH I'm using (how do I figure that out in Haskell?; I think Data.String.Utils
, at least comes from there), but my imports (across all files) look like this:
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)
Is there a backward compatible substitute for the parts of MissingH that I'm using?