Newbie question: Why gfoldl has this strange type?

Hi! I am a novice in Haskell, and particularly I have interested in generic programming. This interest motivated me to read paper Scrap your boilerplate: A practical design pattern for generic programming, but I didn't understand the type of the function gfoldl, that was present in class Term (Data). Somebody could help me to understand the type of this function? Thanks... Rodrigo

Just so nobody else has to look it up:
Data.Generics.Basics.gfoldl :: Data a => (c (a -> b) -> a -> c b) -> (g -> c
g) -> a -> c a
-- ryan
On 8/30/07, Rodrigo Geraldo
Hi!
I am a novice in Haskell, and particularly I have interested in generic programming. This interest motivated me to read paper Scrap your boilerplate: A practical design pattern for generic programming, but I didn't understand the type of the function gfoldl, that was present in class Term (Data). Somebody could help me to understand the type of this function?
Thanks...
Rodrigo
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Actually, it's a higher rank type and that doesn't show up on hoogle's main page. gfoldl :: (forall a b . Data a => c (a -> b) -> a -> c b) -> (forall g . g -> c g) -> a -> c a
participants (2)
-
Rodrigo Geraldo
-
Ryan Ingram