
#14366: Type family equation refuses to unify wildcard type patterns -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.2.1 checker) | Keywords: TypeFamilies, Resolution: | TypeInType Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): These wildcards are more like wildards in types. E.g {{{ f :: _ -> _ f x = x }}} Here `f` gets the infeerred type `f :: forall a. a -> a`, and both `_` holes are reported as standing for `a`. Similarly (untested) you can write wildcards in pattern signatures. Thus: {{{ f :: a -> (a -> Char -> Bool) -> Bool f x (g :: p -> _ -> _) = g (x :: p) 'v' :: Bool }}} Here the pattern tyupe `(p -> _ -> _)` gives the shepe of the type expected for `g`. But the two underscores can certainly turn out to the same type. So I think yes, we should accept the Description. I don't know how hard it'd be. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14366#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler