所以,我一直在玩GHC.Generics,这很好,但看起来有限/主要集中在生成实例上。
如果可能,我想做的是从另一个数据类型中获取新的数据类型。
假设你有以下类型:
data Xpto = Xpto {
fstt :: First Int
lstt :: Last String }
我想获得以下数据类型'免费':
data Xpto' = Xpto' {
fstt' :: Int
lstt' :: String }
我考虑过的一种可能性是使用类型系列,但是新数据必须与Xpto相同:
class Xptos newtyped where
type UnNewTyped un :: (same kind as newtyped)
我开始认为这一切都不可能,而且我确信这有充分的理由。
注1:我知道这对于模板Haskell来说可能是可行的...只是想知道是否还有其他方法。