error-message-index icon indicating copy to clipboard operation
error-message-index copied to clipboard

GHC-40564 "Inaccessible code in..." is undocumented

Open zarakshR opened this issue 11 months ago • 0 comments

For this example code -

{-# LANGUAGE GADTs #-}

data HList a where
    HNil  :: HList ()
    HCons :: head -> HList tail -> HList (head, tail)

exampleHList :: HList (String, (Int, (Bool, ())))
exampleHList = HCons "Tom" (HCons 25 (HCons True HNil))

hListHead :: HList (a,b) -> a
hListHead HNil = undefined
hListHead (HCons head tail) = head

ghc 9.0.2 provides the following undocumented warning -

example.hs:11:11: warning: [-Winaccessible-code]
    • Couldn't match type ‘(a, b)’ with ‘()’
      Inaccessible code in
        a pattern with constructor: HNil :: HList (),
        in an equation for ‘hListHead’
    • In the pattern: HNil
      In an equation for ‘hListHead’: hListHead HNil = undefined
    • Relevant bindings include
        hListHead :: HList (a, b) -> a (bound at example.hs:11:1)
   |
11 | hListHead HNil = undefined
   |           ^^^^

zarakshR avatar Mar 05 '24 13:03 zarakshR