Skip to content

'MkSolo sometimes printed incorrectly in diagnostics

Summary

In some error messages GHC prints 'Solo a instead of 'MkSolo a

Steps to reproduce

{-# LANGUAGE DataKinds #-}
module T where
import Data.Proxy
import Data.Tuple


p :: Proxy ('MkSolo Int)
p = Proxy :: Proxy Int

This code will output

T.hs:9:5: error: [GHC-83865]
    • Couldn't match type 'Int' with ''Solo Int'
      Expected: Proxy ('Solo Int)
        Actual: Proxy Int
    • In the expression: Proxy :: Proxy Int
      In an equation for 'p': p = Proxy :: Proxy Int
  |
9 | p = Proxy :: Proxy Int
  |     ^^^^^^^^^^^^^^^^^^

Expected behavior

'MkSolo should be printed instead of 'Solo

Environment

  • GHC version used:

master branch

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information