On Wed, Aug 29, 2012 at 12:01 PM, Philip Holzenspies
<[email protected]>wrote:
> 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"
>
Btw, where is this instance defined?
Thanks,
Pedro
>
>
> 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
>
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users