Dieses MonadState Beispiel aus http://book.realworldhaskell.org/read/monad-transformers.html kopiert, gibt mir einen Fehler mit GHC 7.4.2MonadState Instanz von Real World Haskell nicht kompiliert
instance (MonadState s m) => MonadState s (MaybeT m) where
get = lift get
put k = lift (put k)
gibt
Illegal instance declaration for `MonadState s (MaybeT m)'
(All instance types must be of the form (T a1 ... an)
where a1 ... an are *distinct type variables*,
and each type variable appears at most once in the instance head.
Use -XFlexibleInstances if you want to disable this.)
In the instance declaration for `MonadState s (MaybeT m)'
Wenn ich XFlexibleInstances hinzufügen, Ich werde dann aufgefordert, stattdessen XUndecidableInstances hinzuzufügen - ich denke nicht, dass ich diese Erweiterungen hier brauchen sollte. Wie kann diese Instanz kompiliert werden?