
#14995: QuantifiedConstraints: Incorrect pretty printing -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: GHCi | Version: 8.2.2 Resolution: | Keywords: | QuantifiedConstraints, wipT2893 Operating System: Unknown/Multiple | Architecture: Type of failure: Poor/confusing | Unknown/Multiple error message | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Description changed by Iceland_jack: Old description:
This code from [https://www.microsoft.com/en-us/research/wp- content/uploads/2016/02/jfp-outsidein.pdf OutsideIn(X)] compiles
{{{#!hs {-# Language FlexibleInstances, MultiParamTypeClasses, GADTs, QuantifiedConstraints #-}
class C a class B a b where op :: a -> b instance C a => B a [a] where op = undefined
data R a where MkR :: C a => a -> R a
k :: (C a => B a b) => R a -> b k (MkR x) = op x }}}
but pretty-printing `k` prints `B a b => ..` instead of `(C a => B a b) => ..`
{{{ $ ghci -ignore-dot-ghci Test.hs GHCi, version 8.5.20180128: http://www.haskell.org/ghc/ :? for help [1 of 1] Compiling Main ( hs/228-bug.hs, interpreted ) Ok, one module loaded. *Main> :t k k :: B a b => R a -> b *Main> }}}
New description: This code from [https://www.microsoft.com/en-us/research/wp- content/uploads/2016/02/jfp-outsidein.pdf OutsideIn(X)] compiles {{{#!hs {-# Language FlexibleInstances, MultiParamTypeClasses, GADTs, QuantifiedConstraints #-} class C a class B a b where op :: a -> b instance C a => B a [a] where op = undefined data R a where MkR :: C a => a -> R a k :: (C a => B a b) => R a -> b k (MkR x) = op x }}} but pretty-printing `k` prints `B a b => ..` instead of `(C a => B a b) => ..` {{{ $ ghci -ignore-dot-ghci hs/228-bug.hs GHCi, version 8.5.20180128: http://www.haskell.org/ghc/ :? for help [1 of 1] Compiling Main ( hs/228-bug.hs, interpreted ) Ok, one module loaded. *Main> :t k k :: B a b => R a -> b *Main> }}} -- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14995#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler