[GHC] #10902: Refactor type families in Template Haskell

GHC ghc-devs at haskell.org
Tue Dec 1 04:38:41 UTC 2015


#10902: Refactor type families in Template Haskell
-------------------------------------+-------------------------------------
        Reporter:  goldfire          |                Owner:  johnleo
            Type:  task              |               Status:  new
        Priority:  normal            |            Milestone:  8.0.1
       Component:  Template Haskell  |              Version:  7.11
      Resolution:                    |             Keywords:  newcomer
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by johnleo):

 Thanks for the pointer.  From what I can tell the term "head" is defined
 in the original paper //Type classes: an exploration of the design space//
 for type class instances:  Given
 {{{#!hs
 instance P => C T_1 ... T_n  where ...
 }}}
 they define the head to be the part `C T_1 ... T_n` between `=>` and
 `where`.  They also use it without precise definition to refer to the
 "class head" where again it looks like they are referring to the part
 between `=>` and `where` of a type class declaration.  These seem to be
 the only two usages of head in sections 7.6 and 7.7 of the GHC user
 manual.  However by analogy it does seem that naming the part between
 `type family` and `where` as the "head" of a type family declaration would
 be appropriate.

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


More information about the ghc-tickets mailing list