### Please describe the problem. ### What steps will reproduce the problem? Build git-annex with GHC 8.6. ### What version of git-annex are you using? On what operating system? 7.20181211, master ### Please provide any additional information below. Following the implementation plan for the [MonadFail Proposal](https://wiki.haskell.org/MonadFail_Proposal), GHC 8.6 has enabled `-XMonadFailDesugaring` by default. Some of the code in git-annex uses failable patterns in `do`-blocks, so it fails to compile starting from GHC 8.6, as there is no `MonadFail` instance for `Annex`. Here is an example of such an error: Remote/Glacier.hs:165:17: error: • No instance for (Control.Monad.Fail.MonadFail Annex) arising from a do statement with the failable pattern ‘(_, Just h, _, pid)’ • In a stmt of a 'do' block: (_, Just h, _, pid) <- liftIO $ createProcess cmd In the expression: do let cmd = ... (_, Just h, _, pid) <- liftIO $ createProcess cmd ok <- ifM (liftIO $ hIsEOF h) (return False, sink =<< liftIO (L.hGetContents h)) liftIO $ hClose h .... In an equation for ‘go’: go (Just e) = do let cmd = ... (_, Just h, _, pid) <- liftIO $ createProcess cmd ok <- ifM (liftIO $ hIsEOF h) (return False, sink =<< liftIO (L.hGetContents h)) .... | 165 | (_, Just h, _, pid) <- liftIO $ createProcess cmd | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders) Just trying to start using it. I have built it with `-XNoMonadFailDesugaring` for now. > [[fixed|done]] (release soonish) --[[Joey]]