Dear GHCers,
I'm performing traversals over GHC-API results (HsSyn et al). For this purpose,
I'm using SYB generics.
I found that I couldn't use "ext1Q" for a function with type "Data x => Bag x
-> String", i.e. that this function was never applied. The source of Bag's
instance of the Data class seems to explain why:
instance Data a => Data (Bag a) where
gfoldl k z b = z listToBag `k` bagToList b -- traverse abstract type
abstractly
toConstr _ = abstractConstr $ "Bag("++show (typeOf (undefined::a))++")"
gunfold _ _ = error "gunfold"
dataTypeOf _ = mkNoRepType "Bag"
Is there a rationale to not allow gunfolds and to keep toConstr abstract? More
to the point for my needs, is there a reason to not allow dataCast1 casting of
Bags?
Regards,
Philip
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users