[GHC] #4316: Interactive "do" notation in GHCi

GHC cvs-ghc at haskell.org
Wed Oct 13 04:41:16 EDT 2010


#4316: Interactive "do" notation in GHCi
---------------------------------+------------------------------------------
    Reporter:  mitar             |        Owner:  vivian      
        Type:  feature request   |       Status:  patch       
    Priority:  normal            |    Milestone:  7.2.1       
   Component:  GHCi              |      Version:  6.12.3      
    Keywords:                    |     Testcase:              
   Blockedby:                    |   Difficulty:              
          Os:  Unknown/Multiple  |     Blocking:              
Architecture:  Unknown/Multiple  |      Failure:  None/Unknown
---------------------------------+------------------------------------------

Comment(by simonmar):

 The basic idea is this: when we get a line of input from the user, we call
 the lexer in "alternative layout rule mode" to read tokens up to the end
 of the line, and then inspect the state of the lexer at that point.  The
 alternative layout rule tracks layout contexts and brackets, so we can
 tell whether the current line is finished or not.  Then we read the next
 line, start lexing it using the state from the previous line, and so on.
 If we get a blank line, finish and parse the input as usual.

 I haven't thought through all the details here, but I think the idea is
 very cool: GHC will be able to tell automatically whether the input is
 complete or not by counting brackets.  One disadvantage is, as you point
 out, a `let` binding would require a double-return to terminate it.  So
 perhaps this automatic multi-line input could be optional, but I imagine
 people would get used to it pretty quickly.

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


More information about the Glasgow-haskell-bugs mailing list