Re: [GHC] #7495: generalizing overloaded list syntax to Sized Lists, HLists, HRecords, etc

#7495: generalizing overloaded list syntax to Sized Lists, HLists, HRecords, etc -------------------------------------+------------------------------------- Reporter: nwf | Owner: carter Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: 9883 Related Tickets: #9883 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by int-index): * cc: int-index (added) Comment: Lovely design in comment:11. I don't think anything stops us from extending it to support pattern matching and ranges by adding more classes for these features. Another use case that I have in mind is `NonEmpty`. As it stands, using it with `OverloadedLists` is unsafe, as `[]` will fail at run-time instead of compile-time. With the design of comment:11 we could do this: {{{#!hs instance Cons (NonEmpty a) where type Head (NonEmpty a) = a type Tail (NonEmpty a) = [a] cons = (:|) instance TypeError ... => Nil (NonEmpty a) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/7495#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC