
#9792: map/coerce rule never seems to fire -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: ekmett Type: bug | Status: new Priority: normal | Milestone: 7.10.1 Component: Core | Version: 7.9 Libraries | Keywords: Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: Runtime | Related Tickets: performance bug | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by nomeata): Tracking the stack depths is to avoid generating looping code at runtime. But we don’t have this guarantee in Core, and the desugarer + typechecker is too large a beast to give any guarantees besides best-effort, I’d say. Maybe it is possible to abstract over the constraints somehow, and write a constraint with value ⊥ in the general case, circumventing any special casing for Coercible? (But even if it is possible it includes so much malice that whoever does that waives any right to complain about `map coerce = coerce` :-)) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9792#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler