这个“派生新类型”语法是什么?

What is this `deriving newtype` syntax?

来自博客post 我阅读

-- | Newtype for disabling logging
newtype NoLoggingT m a
  = NoLoggingT { runNoLoggingT :: m a }
  deriving newtype (Functor, Applicative, Monad)
  deriving (MonadTrans) via IdentityT

instance Monad m => MonadLog (NoLoggingT m) where logLn _ _ = pure ()

deriving newtype 语法是什么? 它是哪个扩展,它有什么作用? 请在答案中为其文档提供 link。

它让 GHC 使用 GeneralizedNewtypeDeriving 策略来派生实例。您需要启用 DerivingStrategies 扩展程序。