#7802: kindFunResult in monad transformer
-------------------------------+--------------------------------------------
Reporter:  tobsan              |          Owner:                         
    Type:  bug                 |         Status:  new                    
Priority:  normal              |      Component:  Compiler (Type checker)
 Version:  7.6.1               |       Keywords:                         
      Os:  Linux               |   Architecture:  x86_64 (amd64)         
 Failure:  Compile-time crash  |      Blockedby:                         
Blocking:                      |        Related:                         
-------------------------------+--------------------------------------------
 This is probably related to the existing (fixed?) bug(s) about
 kindFunResult, but better safe than sorry.

 I was writing a brainfuck interpreter, and tried changing this code:

 {{{
 getptrval = gets mem >>= \a -> gets ptr >>= lift . readArray a
 }}}

 to this (which probably wouldn't even work):

 {{{
 getptrval = liftM2 (lift . readArray) (gets ptr) (gets mem)
 }}}


 which gives this error message from GHC:

 {{{
 Brainfuck.hs:53:21:ghc: panic! (the 'impossible' happened)
   (GHC version 7.6.1 for x86_64-unknown-linux):
         kindFunResult
 <<details unavailable>>
 }}}


 Related type information:


 {{{
 type BFMonad a = StateT BFState IO a
 data BFState = BF {
     pc, ptr :: Int,
     mem     :: IOUArray Int Int,
     program :: UArray Int Char
 }
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7802>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
ghc-tickets mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/ghc-tickets

Reply via email to