为什么GHC会产生以下类型的错误消息?

Ale*_*ing 8 haskell ghc

鉴于以下计划:

{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE FlexibleInstances #-}

import Control.Monad.Reader

newtype AppM a = AppM (ReaderT Int IO a)
  deriving (Functor, Applicative, Monad, MonadReader)
Run Code Online (Sandbox Code Playgroud)

MonadReader获得申报应MonadReader Int.GHC生成以下错误消息:

Expecting one more argument to ‘MonadReader’
Expected kind ‘* -> ghc-prim-0.4.0.0:GHC.Prim.Constraint’,
  but ‘MonadReader’ has kind ‘*
                              -> (* -> *) -> ghc-prim-0.4.0.0:GHC.Prim.Constraint’
In the newtype declaration for ‘AppM’
Run Code Online (Sandbox Code Playgroud)

此错误消息让我感到困惑.那种MonadReader就是* -> (* -> *) -> GHC.Prim.Constraint,作为错误消息指出,这是有道理的.但是,错误消息表明它希望是实物* -> GHC.Prim.Constraint,尽管事实上它MonadReader Int实际上是善良的(* -> *) -> GHC.Prim.Constraint.

鉴于这种类型*并且* -> *不匹配,此错误消息不仅会误导我,而且实际上是错误的.这是一个错误,还是我忽略了此错误消息中的内容?

dfe*_*uer 2

正如Tikhon Jelvis 所说,这是一个错误。亚历克西斯·金 (Alexis King) 打开了这张票,该票在四个月前就已关闭。