[Drop unnecessary parenthesis in types, put in by the user David Waern **20080724160618 We were putting in parenthesis were the user did. Let's remove this since it just clutters up the types. The types are readable anyway since we print parens around infix operators and do not rely on fixity levels. When doing this I discovered that we were relying on user parenthesis when printin types like (a `O` b) c. This patchs fixes this problem so that parenthesis are always inserted around an infix op application in case it is applied to further arguments, or if it's an arguments to a type constructor. Tests are updated. ] { hunk ./src/Haddock/Backends/Html.hs 1339 + + hunk ./src/Haddock/Backends/Html.hs 1345 + hunk ./src/Haddock/Backends/Html.hs 1372 -ppType ty = ppr_mono_ty pREC_TOP (prepare ty) +ppType ty = ppr_mono_ty pREC_TOP ty hunk ./src/Haddock/Backends/Html.hs 1376 --- Before printing a type --- (a) Remove outermost HsParTy parens --- (b) Drop top-level for-all type variables in user style --- since they are implicit in Haskell -prepare (HsParTy ty) = prepare (unLoc ty) -prepare ty = ty +-- Drop top-level for-all type variables in user style +-- since they are implicit in Haskell hunk ./src/Haddock/Backends/Html.hs 1410 - = maybeParen ctxt_prec pREC_OP $ + = maybeParen ctxt_prec pREC_FUN $ hunk ./src/Haddock/Backends/Html.hs 1417 - = parens (ppr_mono_lty pREC_TOP ty) +-- = parens (ppr_mono_lty pREC_TOP ty) + = ppr_mono_lty ctxt_prec ty hunk ./tests/output/Test.html 599 -> :: T1 -> ( :: T1 -> Int Int) -> ( Int Int -> Bool Bool) -> ( Bool Bool -> Float Float) -> Float Float -> Int Int -> Int Int -> ( Float Float -> Float Float) -> :: T1 -> ( :: T1 -> Int Int) -> ( Int Int -> Bool Bool) -> ( Bool Bool -> Float Float) -> Float Float -> :: T1 -> ( :: T1 -> Int Int) -> ( Int Int -> Bool Bool) -> ( Bool Bool -> Float Float) -> Float Float -> Int Int -> Int Int -> ( Float Float -> Float Float) -> :: T1 -> ( :: T1 -> Int Int) -> ( Int Int -> Bool Bool) -> ( Bool Bool -> Float Float) -> Float Float -> :: T1 -> ( :: T1 -> Int Int) -> ( Int Int -> Bool Bool) -> ( Bool Bool -> Float Float) -> Float Float -> Int Int -> Int Int -> ( Float Float -> Float Float) -> :: T1 -> ( :: T1 -> Int Int) -> ( Int Int -> Bool Bool) -> ( Bool Bool -> Float Float) -> Float Float ->