Text.XML.Light ve Boilerplate'i (http://github.com/finnsson/Text.XML.Generic numaralı telefondan) kullanarak bir XML (de) serializer yazıyorum ve şu ana kadar "normal" ADT'ler için çalışma kodunu aldım ama varoluşların serileştirilmesi. Varolan işler ve Kazan kasanı
ben varoluşsal veri türüdata DataBox where
DataBox :: (Show d, Eq d, Data d) => d -> DataBox
var ve bu
instance Data DataBox where
gfoldl k z (DataBox d) = z DataBox `k` d
gunfold k z c = k (z DataBox) -- not OK
toConstr (DataBox d) = toConstr d
dataTypeOf (DataBox d) = dataTypeOf d
derlemek almaya çalışıyorum ama DataBox
için gunfold
nasıl uygulanacağı bilemiyorum.
hata mesajı Bu b
veri türünü anlamaya mümkün değil varlık hakkında şikayetçi
Text/XML/Generic.hs:274:23:
Ambiguous type variable `b' in the constraints:
`Eq b'
arising from a use of `DataBox' at Text/XML/Generic.hs:274:23-29
`Show b'
arising from a use of `DataBox' at Text/XML/Generic.hs:274:23-29
`Data b' arising from a use of `k' at Text/XML/Generic.hs:274:18-30
Probable fix: add a type signature that fixes these type variable(s)
olduğunu.
Ayrıca dataCast1
ve dataCast2
uygulamak için çalışıyorum ama sanırım onlar olmadan yaşayabiliyorum (yani yanlış bir uygulama).
şunlardır:
- sizin Demirbaş Hurda ile existentials birleştirmek mümkün mü?
- Eğer öyleyse: varoluşsal veri türü için silah katını nasıl uygularsınız?
+1: http://www.mail-archive.com/[email protected]/msg75780.html –
Bahşiş için teşekkürler. Şu anki bahisim José Pedro Magalhães'in haklı olduğu, yani (1) 'in cevabının "hayır" olduğu. – finnsson