Playing ghci , I got the following expression: unlines . map (\(a,b) -> show a ++ " " ++ show b) unlines . map (\(a,b) -> show a ++ " " ++ show b)
Now when I check it through :t , I get:
> :t unlines . map (\(a,b) -> show a ++ " " ++ show b) unlines . map (\(a,b) -> show a ++ " " ++ show b) :: (Show a, Show a1) => [(a, a1)] -> String
As accurate as expected. But now, if I try to assign it to some name, I get a more specific signature than the original:
> let f = unlines . map (\(a,b) -> show a ++ " " ++ show b) > :tf f :: [((), ())] -> String
Why is this happening?
viraptor
source share