
#15009: Float equalities past local equalities -------------------------------------+------------------------------------- Reporter: goldfire | Owner: (none) Type: feature request | Status: closed Priority: normal | Milestone: 8.4.3 Component: Compiler | Version: 8.2.2 Resolution: fixed | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: gadt/T15009 Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by nfrisby): For future interested parties (e.g. me :/), I suggest reading these Notes in this order. (These links are into the tip of the {{{ghc-8.6}}} branch as of this moment.) 1. {{{Note [TcLevel and untouchable type variables]}}}, {{{Note [WantedInv]}}}, {{{Note [Skolem escape prevention]}}}, and {{{Note [TcLevel assignment]}}} in the {{{Untoucable type variables}}} [sic] section starting at [https://github.com/ghc/ghc/blob/8bed140099f8ab78e3e728fd2e50dd73d7210e84/com... TcType.hs line 679] 1. {{{Note [Float Equalities out of Implications]}}}, {{{Note [Float equalities from under a skolem binding]}}}, {{{Note [Which equalities to float]}}}, {{{Note [Skolem escape]}}}, and {{{Note [What prevents a constraint from floating]}}} within the {{{Floating equalities}}} section starting at [https://github.com/ghc/ghc/blob/8bed140099f8ab78e3e728fd2e50dd73d7210e84/com... TcSimplify.hsline 2132] 1. {{{Note [When does an implication have given equalities?]}}} and {{{Note [Let-bound skolems]}}} starting at [https://github.com/ghc/ghc/blob/8bed140099f8ab78e3e728fd2e50dd73d7210e84/com... TcSMonad.hs line 2142] -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15009#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler