It seems that the monad-logger
package started to export the Loc
symbol starting with version 0.3.4.0
. This version isn't excluded by the Cabal file of fpco-api
.
You could try
cabal install fpco-api --constraint="monad-logger < 0.3.4"
to force using an older version of monad-logger
.
More explanation about the error:
The module FP.Server.Types
in the package fpco-api
defines a datatype Loc
that's used throughout the package. The module Language.Haskell.TH.Syntax
defines a different datatype Loc
. This modules isn't used directly by fpco-api
, but fpco-api
makes use of the monad-logger
package, which in turn uses Language.Haskell.TH.Syntax
. That's no problem as long as at no point in the program, both different Loc
types are in scope. But in its most recent version, 0.3.4.0
, the monad-logger
package decided to re-export the Loc
datatype from Language.Haskell.TH.Syntax
. Now in many places where the logger monad is imported in fpco-api
, suddenly both Loc
types are in scope, and GHC doesn't know to which one the local occurrences of Loc
refer.
The proper fix for this error is for fpco-api
to be hiding the Loc
re-export from the logger monad, or to explicitly refer to the right one by using qualified names. But this requires a source code update of fpco-api
. The temporary fix to use an older version of monad-logger
should hopefully be sufficient.