[GHC] #12465: Evil idea: Allow empty record field update syntax for types.

GHC ghc-devs at haskell.org
Sun Aug 21 18:21:17 UTC 2016


#12465: Evil idea: Allow empty record field update syntax for types.
-------------------------------------+-------------------------------------
        Reporter:  Iceland_jack      |                Owner:
            Type:  feature request   |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:
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 goldfire):

 I would love to see full support for record-like syntax at the type level.
 This would be (almost) forward-compatible with such an idea. I like it,
 with one exception: empty braces always always mean that the type is fully
 applied. If you wish for it to be partially applied, then use underscores.

 The (almost) part above is that you mean the type `Vector {}` to have a
 subtly different meaning than an expression `MkRec {}`. In the former, you
 wish for GHC to infer the values for the arguments. In the latter, you
 wish for GHC to use `undefined`. In some future world where we can
 sometimes infer the value of term-level arguments (because we have
 dependent types), perhaps we can have `MkRec {}` mean "infer arguments
 where possible, otherwise use `undefined`". Such an interpretation of
 `MkRec {}` seems fully backward-compatible, for two reasons: (1) no term-
 level arguments can be inferred today, and (2) even if they could, we
 would simply be making a term-level value be more defined, which can't
 hurt the semantics of a program.

 So I, for one, support this move.

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


More information about the ghc-tickets mailing list