I'm in Bird's Thinking Functionally with Haskell and the topic is natural transformations. He says

filter p . map f = map f . filter (p . f)

and he has a proof, but one step of the proof he goes from

filter p . map f = concat . map (map f) . map (test (p . f))

to 

filter p . map f = map f . concat . map (test (p . f))

which means 

concat . map (map f) => map f . concat

which means

map (map f) = map f

... or I'm getting this step wrong somehow. To begin with, I'm having a hard time comprehending map(map f), Any ideas on how this is possible?

LB