I'm using the yesod-markdown package as a "template" for making my own yesod-mathjax package.  I'm pretty much done, and it does compile now, but I'm just really confused by a type that looks like bad syntax.  In fact, I ended up trying to "fix" it, which lead to errors:

mathJaxField :: Monad m 
             => RenderMessage (HandlerSite m) FormMessage 
             => Field m MathJax

Notice that there are two type arrows (=>).  Interestingly,

mathJaxField :: ( Monad m 
                , RenderMessage (HandlerSite m) FormMessage
                ) => Field m MathJax

compiles too.  So it looks like currying/uncurrying, at the type level.  But when did this start?  I'm using GHC 7.6.3