Skip to content

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

@zarakshR

Description

@zarakshR

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
   |           ^^^^

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions