diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2017-05-25 16:18:06 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2017-05-26 12:37:48 +0100 |
commit | ad14efd539377aaf472ad69449dcaf3e679b0e51 (patch) | |
tree | 8db1807c108abb62225820bd3780209d969f541b /testsuite/tests/gadt | |
parent | 226860e786ccb2c5660b64c9cf66e58eaf4dc672 (diff) | |
download | haskell-ad14efd539377aaf472ad69449dcaf3e679b0e51.tar.gz |
Some tidying up of type pretty-printing
Triggered by the changes in #13677, I ended up doing a bit of
refactoring in type pretty-printing.
* We were using TyOpPrec and FunPrec rather inconsitently, so
I made it consisent.
* That exposed the fact that we were a bit undecided about whether
to print
a + b -> c + d vs (a+b) -> (c+d)
and similarly
a ~ [b] => blah vs (a ~ [b]) => blah
I decided to make TyOpPrec and FunPrec compare equal
(in BasicTypes), so (->) is treated as equal precedence with
other type operators, so you get the unambiguous forms above,
even though they have more parens.
We could readily reverse this decision.
See Note [Type operator precedence] in BasicTypes
* I fixed a bug in pretty-printing of HsType where some
parens were omitted by mistake.
Diffstat (limited to 'testsuite/tests/gadt')
-rw-r--r-- | testsuite/tests/gadt/T7558.stderr | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/testsuite/tests/gadt/T7558.stderr b/testsuite/tests/gadt/T7558.stderr index 568f64fcee..f3d74362a5 100644 --- a/testsuite/tests/gadt/T7558.stderr +++ b/testsuite/tests/gadt/T7558.stderr @@ -3,7 +3,7 @@ T7558.hs:8:4: error: • Occurs check: cannot construct the infinite type: a ~ Maybe a Inaccessible code in a pattern with constructor: - MkT :: forall a b. a ~ Maybe b => a -> Maybe b -> T a b, + MkT :: forall a b. (a ~ Maybe b) => a -> Maybe b -> T a b, in an equation for ‘f’ • In the pattern: MkT x y In an equation for ‘f’: f (MkT x y) = [x, y] `seq` True |