
#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