This commit is contained in:
parent
c32d8dbc83
commit
a2565ad514
1 changed files with 47 additions and 0 deletions
47
doc/bugs/No_MonadFail_instance.mdwn
Normal file
47
doc/bugs/No_MonadFail_instance.mdwn
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
### 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.
|
Loading…
Add table
Add a link
Reference in a new issue