{-# Language RankNTypes #-} import Control.Lens.Type import Control.Lens.Zoom (zoom) import Control.Monad.RWS.Strict (RWS) {-- semantically, bad=good but it does not compile with GHC >= 9 bad :: Monoid w => Lens' s a -> RWS r w a x -> RWS r w s x bad = zoom --} good :: Monoid w => Lens' s a -> RWS r w a x -> RWS r w s x good x = zoom x main = return ()