[GHC] #7828: RebindableSyntax and Arrow

GHC ghc-devs at haskell.org
Wed Jul 2 08:06:41 UTC 2014


#7828: RebindableSyntax and Arrow
----------------------------------------------+----------------------------
        Reporter:  AlessandroVermeulen        |            Owner:
            Type:  bug                        |  jstolarek
        Priority:  normal                     |           Status:  new
       Component:  Compiler (Type checker)    |        Milestone:  7.10.1
      Resolution:                             |          Version:  7.6.2
Operating System:  Unknown/Multiple           |         Keywords:
 Type of failure:  GHC rejects valid program  |     Architecture:
       Test Case:                             |  Unknown/Multiple
        Blocking:                             |       Difficulty:  Unknown
                                              |       Blocked By:
                                              |  Related Tickets:  #1537,
                                              |  #3613
----------------------------------------------+----------------------------

Comment (by ross):

 Replying to [comment:39 jstolarek]:
 > Replying to [comment:17 ross]:
 > > Here's a different suggestion for rebinding that is perhaps more
 analogous to the expression case.  We could consider do and if commands as
 sugar for more primitive commands:
 > > {{{
 > > do { rec { ss }; ss' } =
 > >     do { vs <- (| fixA (\ ~vs -> do { ss; returnA -< vs })|); ss' }
 > > }}}
 >
 > Can the desugaring of `rec` be viewed as:
 >
 > {{{
 > do { rec { ss }; ss' } =
 >     (| fixA (\ ~vs -> do { ss; returnA -< vs })|) `bind` \ vs -> do {
 ss' }
 > }}}
 >
 > ?

 Yes, that's a combination of the above and the rule for `<-`.

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


More information about the ghc-tickets mailing list