id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
1633	Improve error message for kind mismatches	guest		"{{{
ext :: Ev st Request res -> ServerPart (EvPar res st) Request Result
ext x = Handle $ \req -> do f <- ask
                            liftIO $ f x req
}}}

That's from HAppS/Protocols/HTTP.hs

While trying to bend my head around the involved types, feeling understanding already creeping somewhere, I, in a desperate attempt, copied the code into my source and changed it to
{{{
ext' :: Ev st Request res -> ServerPart (EvPar res st) Request Result
ext' x = Handle $ \req -> req
}}}
hoping to get a clean, expressive and enlightening type error, 

I got this:
{{{
    Kind mis-match
    Expected kind `* -> *', but `Result' has kind `*'
    In the type `ServerPart (EvPar res st) Request Result'
    In the type `Ev st Request res
                 -> ServerPart (EvPar res st) Request Result'
    In the type signature for `ext'':
      ext' :: Ev st Request res
              -> ServerPart (EvPar res st) Request Result
}}}
Which made me wonder, google and then groan, as I couldn't even figure out what the heck a kind-mismatch is or means, not to mention why ghc points me to the type instead of the code.

My request is for the documentation section ""Error messages and their meaning"" aka ""RTF this if you got that"". The terminology of some ghc errors is just begging for references to papers."	feature request	closed	normal	6.12 branch	Documentation	6.6.1	fixed			Unknown/Multiple	Unknown/Multiple		Unknown	typecheck/should_fail/T1633			
