在我的Yesod Web应用程序中,我具有以下数据类型:

data SensorType = TemperatureSensor | HumiditySensor deriving (Eq, Show, Read, PathPiece, PersistField)


我启用GeneralizedNewtypeDeriving

关于自动推导PathPiece的答案:

What typeclasses need to be defined for a Yesod path?

但是我收到ghc错误:

Can't make a derived instance of `PathPiece SensorType
  `PathPiece' is not a derivable class


是否可以自动导出PathPiece?我做错了什么?

对于PersistField存在derivePersistField。那PathPiece呢?

最佳答案

顾名思义,GeneralizedNewtypeDeriving仅用于导出newtype的实例。它通过在新类型包装器上提升基础类型的实例来工作。

您的类型不是newtype,因此没有要举起的PathPiece实例。

10-06 10:51