#7224: Polymorphic kind annotations on type classes don't always work as
expected
---------------------------------------+------------------------------------
Reporter: slindley | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler (Type
checker)
Version: 7.6.1-rc1 | Keywords: kind polymorphism
Os: Unknown/Multiple | Architecture: Unknown/Multiple
Failure: GHC rejects valid program | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------------+------------------------------------
Consider the following code for defining Atkey-style parameterised monads:
{{{
{-# LANGUAGE
PolyKinds
#-}
class PMonad m where
ret :: a -> m i i a
bind :: m i j a -> (a -> m j k b) -> m i k b
class PMonad' (m :: i -> i -> * -> *) where
ret' :: a -> m i i a
bind' :: m i j a -> (a -> m j k b) -> m i k b
}}}
The following types are inferred for {{{ret}}} and {{{ret'}}}:
{{{
*Main> :t ret
ret :: PMonad * m => a -> m i i a
*Main> :t ret'
ret' :: PMonad' m => a -> m BOX BOX a
}}}
But {{{ret'}}} should have the former type.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7224>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs