Skip to content

Typed holes inferring a more polymorphic type

Consider these two snippets.

testFailure :: Char
testFailure =
  let x = id _
  in  x

Suggestions provided were

/home/sreenidhi/Experiments/TypedHole.hs:3:14: error:
    • Found hole: _ :: a
      Where: ‘a’ is a rigid type variable bound by
               the inferred type of x :: a
               at /home/sreenidhi/Experiments/TypedHole.hs:3:7-14
    • In the first argument of ‘id’, namely ‘_’
      In the expression: id _
      In an equation for ‘x’: x = id _
    • Relevant bindings include
        x :: a (bound at /home/sreenidhi/Experiments/TypedHole.hs:3:7)
        testFailure :: Char
          (bound at /home/sreenidhi/Experiments/TypedHole.hs:2:1)

whereas for this one

testSuccess :: Char
testSuccess = _

It correctly suggests

/home/sreenidhi/Experiments/TypedHole.hs:7:15: error:
    • Found hole: _ :: Char
    • In the expression: _
      In an equation for ‘testSuccess’: testSuccess = _
    • Relevant bindings include
        testSuccess :: Char
          (bound at /home/sreenidhi/Experiments/TypedHole.hs:7:1)
      Valid hole fits include
        testSuccess :: Char
          (bound at /home/sreenidhi/Experiments/TypedHole.hs:7:1)
        testFailure :: Char
          (defined at /home/sreenidhi/Experiments/TypedHole.hs:2:1)
        maxBound :: forall a. Bounded a => a
          with maxBound @Char
          (imported from ‘Prelude’ at /home/sreenidhi/Experiments/TypedHole.hs:1:1
           (and originally defined in ‘GHC.Enum’))
        minBound :: forall a. Bounded a => a
          with minBound @Char
          (imported from ‘Prelude’ at /home/sreenidhi/Experiments/TypedHole.hs:1:1
           (and originally defined in ‘GHC.Enum’))
Trac metadata
Trac field Value
Version 8.6.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information