Skip to content

GHC-8.0.2+ spits out $dm names in error messages

Example (copied from #12881 (closed))

{-# LANGUAGE FlexibleInstances #-}
module Bug where

class Arbitrary a where
  shrink :: a -> [a]
  shrink _ = []

instance Arbitrary a
instance Arbitrary Int

Error message is:

GHCInstance.hs:10:10: error:
T13755.hs:9:10: error:
    • Overlapping instances for Arbitrary Int
        arising from a use of ‘Bug.$dmshrink’
      Matching instances:
        instance Arbitrary a -- Defined at T13755.hs:8:10
        instance Arbitrary Int -- Defined at T13755.hs:9:10
    • In the expression: Bug.$dmshrink @Int
      In an equation for ‘shrink’: shrink = Bug.$dmshrink @Int
      In the instance declaration for ‘Arbitrary Int’

Another example: code in #13754 (closed) description.

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