無名関数が名前にバインドされている場合、型の推論が異なるのはなぜですか?
Prelude> :type (+)
(+) :: Num a => a -> a -> a
Prelude> let bar (x,y) = x+y
Prelude> :type bar
bar :: Num a => (a, a) -> a
Prelude> :type \(x,y)->x+y
\(x,y)->x+y :: Num a => (a, a) -> a
Prelude> let foo = \(x,y)->x+y
Prelude> :type foo
foo :: (Integer, Integer) -> Integer