[GHC] #15687: Type synonym unused binds no warning?
GHC
ghc-devs at haskell.org
Sat Sep 29 09:55:21 UTC 2018
#15687: Type synonym unused binds no warning?
-------------------------------------+-------------------------------------
Reporter: AntC | Owner: (none)
Type: feature | Status: new
request |
Priority: normal | Milestone: 8.6.1
Component: Compiler | Version: 8.6.1
(Parser) |
Keywords: | Operating System: Windows
Architecture: | Type of failure: GHC accepts
Unknown/Multiple | invalid program
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
I was taken aback this was accepted
{{{#!hs
type Silly a b = Maybe b
x :: Silly Int Bool
x = Just True
y :: Silly Char Bool
y = Just False
z = x == y -- returns False
}}}
What's with the `a` in `Silly`'s decl? That's not a phantom type. It's
ignored and thrown away. So `x` and `y` are the same type, and can be
compare for equality.
I expected a rule: all tyvars in the `type`'s head must appear on rhs. Or
at least a warning there was something silly. I tried `-Wall, -fwarn-
unused-binds`, `-Wunused-type-patterns`.
I was just checking up on [https://github.com/ghc-proposals/ghc-
proposals/pull/173#issuecomment-424980779 a remark] that type synonyms are
at the type level like implicit bidirectional pattern synonyms. For those,
all vars must appear on both sides.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15687>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list