[GHC] #13774: Singletons code fails to typecheck when type signature involving type family is added

GHC ghc-devs at haskell.org
Thu Jun 1 13:48:06 UTC 2017


#13774: Singletons code fails to typecheck when type signature involving type
family is added
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler (Type    |              Version:  8.0.1
  checker)                           |             Keywords:  FunDeps,
      Resolution:                    |  TypeFamilies
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:                    |
-------------------------------------+-------------------------------------
Changes (by RyanGlScott):

 * cc: goldfire (added)
 * keywords:  TypeFamilies => FunDeps, TypeFamilies


Comment:

 Some possible wisdom from the `singletons`
 [https://github.com/goldfirere/singletons/tree/f9910fef9084ad9e3ca6b4f713c882aff2eea7ac
 #known-bugs README]:

 > Inference dependent on functional dependencies is unpredictably bad. The
 problem is that a use of an associated type family tied to a class with
 fundeps doesn't provoke the fundep to kick in. This is GHC's problem, in
 the end.

 And this
 [https://github.com/goldfirere/singletons/issues/37#issuecomment-41488816
 comment]:

 > If only a type family could have functional dependencies, we could get
 somewhere, but alas, no. (Sidenote: of course, a type family can be
 declared within a class with functional dependencies, but GHC doesn't
 apply the fundeps when examining the type family.)

 I was unable to dig up anything which explained these comments. Richard,
 can you elaborate more on this interaction between type families and
 functional dependencies? Is there an existing ticket which describes the
 root issue?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13774#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list