Lambda expression in haskell has different type

I am trying to learn Haskell.

We have very simple functions. As I understood all the following are equivalent.

But I don't understand why f2 and f2' have different types, and why exactly Integer.

Also, if I specify the type of f2' manually, it accepts it and works same as f2.

f x = x + 1
-- f :: Num a => a -> a

f' = \x -> x + 1
-- f' :: Num a => a -> a

f2 a b = a + b
-- f2 :: Num a => a -> a -> a

f2' = \a b -> a + b
-- f2 :: Integer -> Integer -> Integer

f2'' = \a -> \b -> a + b
-- f2 :: Integer -> Integer -> Integer

Any ideas?