Am Freitag, 22. Juli 2005 15:56 schrieb Mads Lindstrøm:
> Hi Wolfgang
>
> Thank you very much for the reply. I added an extra parameter to the
> function, so the code now looks like:
>
>   foo :: (Data a) => a -> Constr -> Int
>   foo idType = (numChildren idType) . fromConstr
>
>   numChildren :: (Data a) => a -> a -> Int
>   numChildren _ x = sum $ gmapQ (\_ -> 1) x
>
> and it works. However, it does seem ugly to have an extra argument, just
> to please the type checker.

But somehow you have to tell the compiler what type you want your argument be 
converted into.  If this is always the same type, you can implement foo like 
this:

        foo arg = numChildren (fromConstr arg :: YourType)

> [...]

Best wishes,
Wolfgang
_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to