
#7795: panic! the impossible happened -------------------------+-------------------------------------------------- Reporter: guest | Owner: Type: bug | Status: new Priority: normal | Component: GHCi Version: 7.4.2 | Keywords: Os: Windows | Architecture: Unknown/Multiple Failure: None/Unknown | Blockedby: Blocking: | Related: -------------------------+-------------------------------------------------- Got the following in ghch *Calc> :l Calc [1 of 1] Compiling Calc ( Calc.hs, interpreted ) ghc.exe: panic! (the 'impossible' happened) (GHC version 7.4.2 for i386-unknown-mingw32): nameModule show{tv a17H} Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug -------------------- compiling the following code -------------------- module Calc where --Type for my calculation list data CalcExp = Operator Op | Number Integer deriving (show) -- Number type --data Number = Number Integer -- Operator type data Op = Mlt | Dvd | Add | Sbt -- Operator function operate :: CalcExp -> CalcExp -> CalcExp -> Integer operate (Operator Mlt) (Number a) (Number b) = a * b operate (Operator Dvd) (Number a) (Number b) = div a b operate (Operator Add) (Number a) (Number b) = a + b operate (Operator Sbt) (Number a) (Number b) = a - b -- Do calcultation --calc :: [CalcExp] -> [CalcExp] -> Integer -- Resulve calc rCalc :: [CalcExp] -> Integer rCalc (exps) = rCalc' exps [] where rCalc' :: [CalcExp] -> [CalcExp] -> Integer rCalc' ((Operator op):exps) ((Number nA):(Number nB):[]) = operate (Operator op) (Number nA) (Number nB) rCalc' ((Operator op):exps) ((Number nA):(Number nB):stack) = rCalc' exps ((Number (operate (Operator op) (Number nA) (Number nB))):stack) rCalc' ((Number n):exps) (stack) = rCalc' exps ((Number n):stack) rCalc' (a) (b) = error "Calculation failed" -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7795 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler