ghc: panic! (the 'impossible' happened)
Error when compiling, maybe parser wasn't able to detect error at "type TokContent = { position :: Pos, content::String }"
ghc: panic! (the 'impossible' happened)
(GHC version 7.6.3 for x86_64-unknown-linux):
tc_hs_type: record
{-# LANGUAGE DeriveDataTypeable #-}
module Tokens(
Token (..),
Pos
) where
import Data.Data(toConstr,Data,Typeable)
type Pos = (Int,Int)
type TokContent = { position :: Pos, content::String }
data Token = TkString { position :: Pos, content::String }
| TkLB { position :: Pos, content::String }
| TkRB { position :: Pos, content::String }
| TkLCurly { position :: Pos, content::String }
| TkRCurly { position :: Pos, content::String }
| TkLP { position :: Pos, content::String }
| TkRP { position :: Pos, content::String }
| TkDColon { position :: Pos, content::String }
| TkColon { position :: Pos, content::String }
| TkSColon { position :: Pos, content::String }
| TkTEQ { position :: Pos, content::String }
| TkPEQ { position :: Pos, content::String }
| TkDot { position :: Pos, content::String }
| TkExcMark { position :: Pos, content::String }
| TkNEQ { position :: Pos, content::String }
| TkDAmp { position :: Pos, content::String }
| TkAnd { position :: Pos, content::String }
| TkPOr { position :: Pos, content::String }
| TkOr { position :: Pos, content::String }
| TkDEQ { position :: Pos, content::String }
| TkGE { position :: Pos, content::String }
| TkLE { position :: Pos, content::String }
| TkGT { position :: Pos, content::String }
| TkLT { position :: Pos, content::String }
| TkIDiv { position :: Pos, content::String }
| TkDiv { position :: Pos, content::String }
| TkSum { position :: Pos, content::String }
| TkMin { position :: Pos, content::String }
| TkPower { position :: Pos, content::String }
| TkTimes { position :: Pos, content::String }
| TkMod { position :: Pos, content::String }
| TkEq { position :: Pos, content::String }
| TkAssign { position :: Pos, content::String }
| TkInt { position :: Pos, content::String }
| TkBool { position :: Pos, content::String }
| TkChar { position :: Pos, content::String }
| TkVoid { position :: Pos, content::String }
| TkFloat { position :: Pos, content::String }
| TkStruct { position :: Pos, content::String }
| TkUnion { position :: Pos, content::String }
| TkEnum { position :: Pos, content::String }
| TkEnumCons { position :: Pos, content::String }
| TkNull { position :: Pos, content::String }
| TKGlobal { position :: Pos, content::String }
| TkFunc { position :: Pos, content::String }
| TkIf { position :: Pos, content::String }
| TkElif { position :: Pos, content::String }
| TkElse { position :: Pos, content::String }
| TkEnd { position :: Pos, content::String }
| TkWhile { position :: Pos, content::String }
| TkFor { position :: Pos, content::String }
| TkBegin { position :: Pos, content::String }
| TkBreak { position :: Pos, content::String }
| TkContinue { position :: Pos, content::String }
| TkReturn { position :: Pos, content::String }
| TkExit { position :: Pos, content::String }
| TkRead { position :: Pos, content::String }
| TkWrite { position :: Pos, content::String }
| TkPrint { position :: Pos, content::String }
| TkAlloc { position :: Pos, content::String }
| TkFree { position :: Pos, content::String }
| TkSizeOf { position :: Pos, content::String }
| TkGet { position :: Pos, content::String }
| TkTruFal { position :: Pos, content::String }
| TkNum { position :: Pos, content::Int }
| TkDId { position :: Pos, content::String }
| TkId { position :: Pos, content::String }
| TkError { position :: Pos, content::String }
deriving(Data,Typeable)
instance Show Token where
show generic = show (toConstr generic )++ "\n" ++
" line: " ++ show l ++ "\n" ++
" column: " ++ show c ++ "\n"
where (l,c) = position generic
Trac metadata
Trac field | Value |
---|---|
Version | 7.6.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |