[GHC] #8026: DatatypeContexts should be fixed, not deprecated

GHC ghc-devs at haskell.org
Mon Sep 22 14:38:27 UTC 2014


#8026: DatatypeContexts should be fixed, not deprecated
-------------------------------------+-------------------------------------
              Reporter:  gidyn       |            Owner:
                  Type:  feature     |           Status:  new
  request                            |        Milestone:
              Priority:  normal      |          Version:  7.6.3
             Component:  Compiler    |         Keywords:
            Resolution:              |     Architecture:  Unknown/Multiple
      Operating System:              |       Difficulty:  Unknown
  Unknown/Multiple                   |       Blocked By:
       Type of failure:              |  Related Tickets:
  None/Unknown                       |
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by gidyn):

 Consider the first example

 {{{
 data Eq a => Foo a = Foo a

 isEq :: Foo a -> Foo a -> Bool
 isEq (Foo x) (Foo y) = x == y
 }}}

 This won't compile, because `isEq` is missing `Eq a =>`. However, with
 [https://ghc.haskell.org/trac/ghc/wiki/PartialTypeSignatures#extra-
 constraints-wildcard Partial Type Signatures], we can write

 {{{
 isEq :: _ => Foo a -> Foo a -> Bool
 }}}

 and GHC will infer the constraint.

 This proposal is requesting that whenever `DatatypeContexts` has been
 turned on, and a data type appears in a type signature, GHC will
 automatically infer the data type's context in the same way as it would
 for an extra-constraints wildcard.

 Is this clearer?

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


More information about the ghc-tickets mailing list