Skip to content

Constraint instances not shown in `:info`

$ ghci -ignore-dot-ghci -XKindSignatures -XRank2Types -XConstraintKinds -XAllowAmbiguousTypes -XInstanceSigs
GHCi, version 8.1.20160428: http://www.haskell.org/ghc/  :? for help
Prelude> import Data.Kind
Prelude Data.Kind> class Defer (p :: Constraint) where defer :: (p => r) -> r
Prelude Data.Kind> instance Defer () where defer :: r -> r; defer = id
Prelude Data.Kind> :i Defer
class Defer (p :: Constraint) where
  defer :: (p => r) -> r
  {-# MINIMAL defer #-}
        -- Defined at <interactive>:2:1

Same happens with the Data.Constraint.Deferrable which defines:

instance (Typeable a, Typeable b)                   => Deferrable (a ~ b) 
instance (Deferrable a, Deferrable b)               => Deferrable (a, b) 
instance (Deferrable a, Deferrable b, Deferrable c) => Deferrable (a, b, c) 

but no instances are shown:

ghci> import Data.Constraint.Deferrable 
ghci> :i Deferrable 
class Deferrable (p :: Constraint) where
  deferEither :: proxy p -> (p => r) -> Either String r
  {-# MINIMAL deferEither #-}
        -- Defined in ‘Data.Constraint.Deferrable’
Trac metadata
Trac field Value
Version 7.10.3
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