
#12025: Order of constraints forced (in pattern synonyms, type classes in comments) -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.1 checker) | Keywords: Resolution: | TypeApplications PatternSynonyms Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: 11513, 10928 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Iceland_jack): Another place I've discovered this is in type classes (I want to hear about other cases), let's say that for what ever reason want to supply the type `a` first but we can't (by design) {{{#!hs class P p where q_ :: forall a. p a -> Int instance P Maybe where q_ :: forall a. Maybe a -> Int q_ = length }}} Unlike the pattern synonym case this can be remedied by new function {{{#!hs q :: forall a p. P p => p a -> Int q = q_ }}} Users will have to define a different method than they use, it's inelegant but it works. This isn't a problem if we allow signatures with explicit quantification for type classes #11620 -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12025#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler