
#7643: Kind application error ----------------------------------------+----------------------------------- Reporter: gmainland | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type checker) | Version: 7.6.1 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: #7354 | ----------------------------------------+----------------------------------- Changes (by simonpj): * difficulty: => Unknown Comment: There really is an underlying issue here, about how inference interacts with sub-kinding. Sigh. It is shown up here becuase you are doing `unsafeCoerce#` on an unlifted type, which is a deeply dangerous thing to do. Better to do it on a lifted type. Try using this definition of `setIntByteArray#`, which actually uses one fewer `unsafeCoerce#` calls: {{{ setIntByteArray# :: MutableByteArray# s -> Int# -> Int# -> Int -> State# s -> State# s setIntByteArray# arr# i# n# (I# x#) s# = case unsafeCoerce# (internal (setIntArray# arr# i# n# x#)) s# of (# s1#, _ #) -> s1# }}} That makes the attached `Main.hs` compile fine. Don't close the ticket though. The underlying problem (dark corner though it is) remains. Simon -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7643#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler