break018 skips a step
The break018 test is failing:
@@ -1,13 +1,11 @@
Stopped at ../mdo.hs:(29,0)-(31,26)
-_result :: IO (N a) = _
-Stopped at ../mdo.hs:(29,15)-(31,26)
-_result :: IO (N Char) = _
-x :: Char = 'h'
-xs :: [Char] = _
+_result :: (# GHC.Prim.State# GHC.Prim.RealWorld, N a #) = _
Stopped at ../mdo.hs:29:29-41
_result :: IO (N Char) = _
f :: N Char = _
l :: N Char = _
x :: Char = 'h'
Stopped at ../mdo.hs:(7,0)-(8,41)
-_result :: IO (N a) = _
+_result :: (# GHC.Prim.State# GHC.Prim.RealWorld, N a #) = _
+Stopped at ../mdo.hs:7:25-38
+_result :: IO (IORef Bool) = _
*** unexpected failure for break018(ghci)
What's happening here is that as we :st through the evaluation we aren't stopping at the mdo expression any more; we go straight from the entire l2dll to the newNode expression:
l2dll :: [a] -> IO (N a)
l2dll (x:xs) = mdo c <- newNode l x f
(f, l) <- l2dll' c xs
return c
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.11 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | GHCi |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |