3

从我读到的一篇博文

-- | 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语法?它是哪个扩展名,它有什么作用?请在 anwser 中提供指向其文档的链接。

4

1 回答 1

7

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

于 2020-08-12T07:07:12.490 回答