-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
I am trying to compile nbt-0.7 with ghc 8.8.3 (stac lts-16.1) and get the following error:
Preprocessing library for nbt-0.7..
nbt > Building library for nbt-0.7..
nbt > [1 of 1] Compiling Data.NBT
nbt >
nbt > /tmp/stack-d638f12c11d32bcc/nbt-0.7/src/Data/NBT.hs:113:53: error:
nbt > • No instance for (MonadFail Data.Serialize.Put.PutM)
nbt > arising from a use of ‘fail’
nbt > • In the expression: fail "Attempted to write heterogeneous list"
nbt > In a case alternative:
nbt > x : xs
nbt > | all (\ e -> typeOf e == ty) xs -> return ty
nbt > | otherwise -> fail "Attempted to write heterogeneous list"
nbt > where
nbt > ty = typeOf x
nbt > In a stmt of a 'do' block:
nbt > ty <- case elems ts of
nbt > [] -> return EndType
nbt > x : xs
nbt > | all (\ e -> typeOf e == ty) xs -> return ty
nbt > | otherwise -> fail "Attempted to write heterogeneous list"
nbt > where
nbt > ty = typeOf x
nbt > |
nbt > 113 | | otherwise -> fail "Attempted to write heterogeneous list"
nbt > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
nbt >
I tracked the problem down and fount that the new version of GHC has dropped the fail function for Monads. See the proposal. A suiting fix would be replacing fail with error as that was the default behaviour of the PutM monad instance.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels