The latest version of monadiccp fails to build with ghc 7.8.2 with the error message below:
[21 of 63] Compiling Control.Search.Generator ( Control/Search/Generator.hs, dist/build/Control/Search/Generator.o )
Control/Search/Generator.hs:732:70:
Overlapping instances for Monad (t' ((:>) t2 IdT m))
arising from a use of `mapE'
Matching instances:
instance [overlap ok] (Monad m, MonadT t) => Monad (t m)
-- Defined at Control/Monatron/AutoInstances.hs:11:10
instance Monad m => Monad (Control.Applicative.WrappedMonad m)
-- Defined in `Control.Applicative'
(The choice depends on the instantiation of `t2, t', m'
To pick the first instance above, use IncoherentInstances
when compiling the other instance declarations)
In the first argument of `liftM', namely `(mapE (mmap L . runL))'
In the first argument of `(.)', namely
`liftM (mapE (mmap L . runL))'
In the `mapper' field of a record
Control/Search/Generator.hs:741:73:
Overlapping instances for Monad (t' ((:>) t2 (t1 :> t3) m))
arising from a use of `mapE'
Matching instances:
instance [overlap ok] (Monad m, MonadT t) => Monad (t m)
-- Defined at Control/Monatron/AutoInstances.hs:11:10
instance Monad m => Monad (Control.Applicative.WrappedMonad m)
-- Defined in `Control.Applicative'
(The choice depends on the instantiation of `t2, t1, t3, t', m'
To pick the first instance above, use IncoherentInstances
when compiling the other instance declarations)
In the first argument of `liftM', namely `(mapE (mmap L . runL))'
In the first argument of `(.)', namely
`liftM (mapE (mmap L . runL))'
In the `mapper' field of a record
Control/Search/Generator.hs:752:44:
Overlapping instances for Monad (t' ((:>) t0 (t1 :> t2) m))
arising from a use of `mapE'
Matching instances:
instance [overlap ok] (Monad m, MonadT t) => Monad (t m)
-- Defined at Control/Monatron/AutoInstances.hs:11:10
instance Monad m => Monad (Control.Applicative.WrappedMonad m)
-- Defined in `Control.Applicative'
(The choice depends on the instantiation of `t1, t2, t0, t', m'
To pick the first instance above, use IncoherentInstances
when compiling the other instance declarations)
In the first argument of `liftM', namely `(mapE (mmap L . runL))'
In the first argument of `(.)', namely
`liftM (mapE (mmap L . runL))'
In the `mapper' field of a record
Control/Search/Generator.hs:752:50:
Overlapping instances for Monad (t0 ((:>) t1 t2 m))
arising from a use of `mmap'
Matching instances:
instance [overlap ok] (Monad m, MonadT t) => Monad (t m)
-- Defined at Control/Monatron/AutoInstances.hs:11:10
instance Monad m => Monad (Control.Applicative.WrappedMonad m)
-- Defined in `Control.Applicative'
(The choice depends on the instantiation of `t1, t2, t0, m'
To pick the first instance above, use IncoherentInstances
when compiling the other instance declarations)
In the first argument of `(.)', namely `mmap L'
In the first argument of `mapE', namely `(mmap L . runL)'
In the first argument of `liftM', namely `(mapE (mmap L . runL))'
Control/Search/Generator.hs:752:82:
Overlapping instances for Monad (t0 ((:>) t1 t2 m))
arising from a use of `mmap'
Matching instances:
instance [overlap ok] (Monad m, MonadT t) => Monad (t m)
-- Defined at Control/Monatron/AutoInstances.hs:11:10
instance Monad m => Monad (Control.Applicative.WrappedMonad m)
-- Defined in `Control.Applicative'
(The choice depends on the instantiation of `t1, t2, t0, m'
To pick the first instance above, use IncoherentInstances
when compiling the other instance declarations)
In the second argument of `(.)', namely `mmap runL'
In the first argument of `mapE', namely `(L . mmap runL)'
In the second argument of `(.)', namely `mapE (L . mmap runL)'