f :: a -> [a] という任意の関数と、同じく a -> [a] 型で g x = [x] という関数に対して、
次の等式が成り立つことを証明したいです。

concat . map f . g = concat . map g . f = f

concat . map f . g = f は λx . (concat . map f . g x) として素直に簡約していけば
λx . f x となって f になるのですが、concat . map g . f = f の方のやり方が思いつきません。

具体的には、λx . (concat (map g (f x))) ここから先にどう進めばよいのか分かりません。

concat . map g . f = f はどう示せば良いでしょうか?