我有一个有六种不同types实体的模式,但是他们都有很多共同点。 我想我可能可以在types级别抽象出很多这种通用性,但是我碰到了HaskellDB和重叠实例的问题。 这是我开始的代码,它工作正常: import Database.HaskellDB import Database.HaskellDB.DBLayout data Revision a = Revision deriving Eq data Book = Book instance FieldTag (Revision a) where fieldName _ = "rev_id" revIdField :: Attr (Revision Book) (Revision Book) revIdField = mkAttr undefined branch :: Table (RecCons (Revision Book) (Expr (Revision Book)) RecNil) branch = baseTable "branch" $ hdbMakeEntry undefined […]