Skip to content

QuantifiedConstraints: Incorrect pretty printing

This code from OutsideIn(X) compiles

{-# 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> 
Edited by Icelandjack
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information