Haskell kann die Instanz für MonadState s
in T1
unten aber nicht in T2
ableiten, das jedoch ein sehr ähnlicher Typ ist. Wie soll ich den Code für T2
ändern, damit die Instanz für automatisch abgeleitet werden kann?Verallgemeinerter Newtyp Ableiten
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
import Control.Monad.Reader
import Control.Monad.State
newtype T1 r s a =
T1 { runT1 :: ReaderT r (State s) a }
deriving (Monad, MonadReader r, MonadState s)
newtype T2 r s a =
T2 { runT2 :: StateT r (State s) a }
deriving (Monad, MonadState r, MonadState s)