[GHC] #13775: Type family expansion is too lazy, allows accepting of ill-typed terms
GHC
ghc-devs at haskell.org
Mon Jun 5 18:18:23 UTC 2017
#13775: Type family expansion is too lazy, allows accepting of ill-typed terms
-------------------------------------+-------------------------------------
Reporter: fizruk | Owner: diatchki
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler (Type | Version: 8.0.2
checker) | Keywords:
Resolution: | CustomTypeErrors
Operating System: Unknown/Multiple | Architecture:
Type of failure: GHC accepts | Unknown/Multiple
invalid program | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by diatchki):
I think that this is more a question about how type functions work, rather
than `TypeError` specifically.
Currently, GHC does not evaluate type functions unless it needs to, so
there is no error reported. Similarly, GHC does not report any errors for
the following example,
which has nothing to do with `TypeError`:
{{{
type family F a
test = show (Proxy @ (Proxy (F Int))
}}}
This works just fine and prints `Proxy`, it does not report a missing
instance for `F Int`. I don't really like this behavior of GHC, but
that's an orthogonal issue.
I am not sure how I could be more aggressive with `TypeError` without a
bunch of special cases, and also, last time we discussed this people
seemed to want the lazy behavior.
I'll take on updating the manual to be more explicit about the behavior.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13775#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list