understanding a Haskell funktion : j :: [Int]
j = filter ((\h x -> h x > x) (\y -> y*y)) [-2,-1,0,1,2]

This one outputs [-2,-1,2] but why? could someone please explain me step by step what haskell does here to get this output? thx