[GHC] #15422: GHCi debugger doesn't see free variables when using ApplicativeDo
GHC
ghc-devs at haskell.org
Fri Jul 20 08:37:52 UTC 2018
#15422: GHCi debugger doesn't see free variables when using ApplicativeDo
-------------------------------------+-------------------------------------
Reporter: simonmar | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone: 8.6.1
Component: Compiler | Version: 8.4.3
Resolution: | Keywords: ApplicativeDo
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s): Phab:D4991
Wiki Page: |
-------------------------------------+-------------------------------------
Description changed by simonmar:
Old description:
> ```
> > ghci break029.hs
> GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help
> [1 of 1] Compiling Main ( break029.hs, interpreted )
> Ok, one module loaded.
> *Main> :!cat break029.hs
> {-# LANGUAGE ApplicativeDo #-}
>
> f :: Int -> IO Int
> f x = do
> y <- return (x + 1)
> return (y * 2)
> *Main> :step f 3
> Stopped in Main.f, break029.hs:(4,7)-(6,16)
> _result :: IO Int = _
> x :: Int = 3
> [break029.hs:(4,7)-(6,16)] [break029.hs:(4,7)-(6,16)] *Main> :list
> 3 f :: Int -> IO Int
> 4 f x = do
> 5 y <- return (x + 1)
> 6 return (y * 2)
> 7
> [break029.hs:(4,7)-(6,16)] [break029.hs:(4,7)-(6,16)] *Main> :step
> Stopped in Main.f, break029.hs:5:8-21
> _result :: IO Int = _
> x :: Int = 3
> [break029.hs:5:8-21] [break029.hs:5:8-21] *Main> :list
> 4 f x = do
> 5 y <- return (x + 1)
> 6 return (y * 2)
> [break029.hs:5:8-21] [break029.hs:5:8-21] *Main> :step
> Stopped in Main.f, break029.hs:6:11-15
> _result :: Int = _
> [break029.hs:6:11-15] [break029.hs:6:11-15] *Main> y
>
> <interactive>:7:1: error: Variable not in scope: y
> ```
New description:
{{{
> ghci break029.hs
GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( break029.hs, interpreted )
Ok, one module loaded.
*Main> :!cat break029.hs
{-# LANGUAGE ApplicativeDo #-}
f :: Int -> IO Int
f x = do
y <- return (x + 1)
return (y * 2)
*Main> :step f 3
Stopped in Main.f, break029.hs:(4,7)-(6,16)
_result :: IO Int = _
x :: Int = 3
[break029.hs:(4,7)-(6,16)] [break029.hs:(4,7)-(6,16)] *Main> :list
3 f :: Int -> IO Int
4 f x = do
5 y <- return (x + 1)
6 return (y * 2)
7
[break029.hs:(4,7)-(6,16)] [break029.hs:(4,7)-(6,16)] *Main> :step
Stopped in Main.f, break029.hs:5:8-21
_result :: IO Int = _
x :: Int = 3
[break029.hs:5:8-21] [break029.hs:5:8-21] *Main> :list
4 f x = do
5 y <- return (x + 1)
6 return (y * 2)
[break029.hs:5:8-21] [break029.hs:5:8-21] *Main> :step
Stopped in Main.f, break029.hs:6:11-15
_result :: Int = _
[break029.hs:6:11-15] [break029.hs:6:11-15] *Main> y
<interactive>:7:1: error: Variable not in scope: y
}}}
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15422#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list