[GHC] #10061: Remove fun_infix from Funbind, as it is now in Match

GHC ghc-devs at haskell.org
Mon Feb 2 22:01:26 UTC 2015


#10061: Remove fun_infix from Funbind, as it is now in Match
-------------------------------------+-------------------------------------
              Reporter:  alanz       |             Owner:
                  Type:  task        |            Status:  new
              Priority:  normal      |         Milestone:  7.12.1
             Component:  Compiler    |           Version:  7.10.1-rc2
              Keywords:              |  Operating System:  Unknown/Multiple
          Architecture:              |   Type of failure:  None/Unknown
  Unknown/Multiple                   |        Blocked By:
             Test Case:              |   Related Tickets:  #9988
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------
 One of the changes Phab:D538 introduced is to add m_fun_id_infix to Match

 {{{#!hs
 data Match id body
   = Match {
         m_fun_id_infix :: (Maybe (Located id,Bool)),
           -- fun_id and fun_infix for functions with multiple equations
           -- only present for a RdrName. See note [fun_id in Match]
         m_pats :: [LPat id], -- The patterns
         m_type :: (Maybe (LHsType id)),
                                  -- A type signature for the result of the
 match
                                  -- Nothing after typechecking
         m_grhss :: (GRHSs id body)
   } deriving (Typeable)
 }}}

 This was done to track the individual locations and fixity of the fun_id
 for each of the defining equations for a function when there are more than
 one.

 For example, the function (&&&) is defined with some prefix and some infix
 equations below.

 {{{#!hs

 (&&&  ) [] [] =  []
 xs    &&&   [] =  xs
 (  &&&  ) [] ys =  ys
 }}}

 This means that the fun_infix is now superfluous in the FunBind. This has
 not been removed as a potentially risky change just before 7.10 RC2, and
 so must be done after.

 This ticket captures that task, which includes processing these fields
 through the renamer and beyond.

 Ticket #9988 introduced these fields into Match through renaming, this
 ticket it to continue through type checking and then remove it from
 FunBind completely.

 The split happened so that #9988 could land in 7.10

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


More information about the ghc-tickets mailing list