What steps will reproduce the problem?

* Start with Ubuntu 12.04
* sudo apt-get install haskell-platform libgsasl7-dev gsasl g2hs
* cabal install git-annex --bindir=$HOME/bin

What is the expected output? What do you see instead?

Expected omething like "installation successful"

Actual output, after build notices:


Loading package IfElse-0.85 ... linking ... done.
Loading object (static) dist/build/git-annex/git-annex-tmp/Utility/libdiskfree.o ... done
Loading object (static) dist/build/git-annex/git-annex-tmp/Utility/libmounts.o ... done
final link ... done
[157 of 279] Compiling Assistant.Types.DaemonStatus ( Assistant/Types/DaemonStatus.hs, dist/build/git-annex/git-annex-tmp/Assistant/Types/DaemonStatus.o )
[158 of 279] Compiling Assistant.Monad  ( Assistant/Monad.hs, dist/build/git-annex/git-annex-tmp/Assistant/Monad.o )

Assistant/Monad.hs:86:16:
    Couldn't match expected type `Assistant a'
                with actual type `Reader AssistantData a'
    Expected type: (AssistantData -> a) -> Assistant a
      Actual type: (AssistantData -> a) -> Reader AssistantData a
    In the expression: reader
    In an equation for `getAssistant': getAssistant = reader

Assistant/Monad.hs:93:15:
    Couldn't match expected type `Assistant t0'
                with actual type `Reader r0 a0'
    In the return type of a call of `reader'
    In a stmt of a 'do' block: st <- reader threadState
    In the expression:
      do { st <- reader threadState;
           liftIO $ runThreadState st a }

Assistant/Monad.hs:99:14:
    Couldn't match expected type `Assistant t0'
                with actual type `Reader r0 a0'
    In the return type of a call of `reader'
    In a stmt of a 'do' block: d <- reader id
    In the expression:
      do { d <- reader id;
           liftIO $ io $ runAssistant d a }

Assistant/Monad.hs:105:14:
    Couldn't match expected type `Assistant t0'
                with actual type `Reader r0 a0'
    In the return type of a call of `reader'
    In a stmt of a 'do' block: d <- reader id
    In the expression:
      do { d <- reader id;
           return $ runAssistant d a }

Assistant/Monad.hs:110:14:
    Couldn't match expected type `Assistant t0'
                with actual type `Reader r0 a0'
    In the return type of a call of `reader'
    In a stmt of a 'do' block: d <- reader id
    In the expression:
      do { d <- reader id;
           return $ \ v -> runAssistant d $ a v }

Assistant/Monad.hs:115:14:
    Couldn't match expected type `Assistant t0'
                with actual type `Reader r0 a0'
    In the return type of a call of `reader'
    In a stmt of a 'do' block: d <- reader id
    In the expression:
      do { d <- reader id;
           return $ \ v1 v2 -> runAssistant d (a v1 v2) }

Assistant/Monad.hs:120:12:
    Couldn't match expected type `Assistant a0'
                with actual type `Reader r0 a1'
    In the return type of a call of `reader'
    In the first argument of `(>>=)', namely `reader v'
    In the expression: reader v >>= liftIO . io
cabal: Error: some packages failed to install:
git-annex-3.20121112 failed during the building phase. The exception was:
ExitFailure 1


What version of git-annex are you using? On what operating system?

git annex 3.20121112
Ubuntu 12.04 (current "long term support", all packages up to date)

Please provide any additional information below.

No idea how important this is for git-annex in general but reporting in case it is. Thank you for working on git annex!

> I was able to reproduce this build error when I force installed
> an old version of the haskell mtl library. So git-annex needs version
> 2.1.1 to build, and I have adjusted the build dependencies appropriately.
> [[done]] --[[Joey]] 
