
#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): I think we actually have 2 implementation proposals here: - tokyo's rules add type constraints, whenever the data type appears in an explicit type signature or when the constructor is used - use regular type inference The second implementation would give different results for `c` and `d`: {{{ c :: Proxy (HasEq a) -> () -- what constraints are used here??? c _ = () }}} No type constraint is added, because none is inferred by the definition of `c`. {{{ data Dynamic = forall a. Typeable a => MkDyn a d :: Dynamic -> Maybe Bool d (MkDyn y) | Just (MkHasEq z) <- cast y = Just (z == z) -- where does the Eq constraint come from?? d _ = Nothing }}} `DatatypeContexts` wouldn't have any effect in this case. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8026#comment:20 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler