
#11573: Inferred CallStacks expose implicit parameter -------------------------------------+------------------------------------- Reporter: bgamari | Owner: gridaphobe Type: bug | Status: new Priority: normal | Milestone: 8.0.1 Component: Compiler (Type | Version: 8.0.1-rc2 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by gridaphobe): * owner: => gridaphobe * priority: high => normal Comment: Just copying my response from ghc-devs :) ---- The inferred CallStack is not a bug, it was added to fix #10845. The problem is that in a function like foo :: HasCallStack => ... foo x = let bar y = undefined in bar x we need to infer a CallStack for bar (due to the structure of the constraint solver) in order to link foo's CallStack to undefined. What '''is''' a bug is that GHC shows the implicit parameter in the inferred signature. We don't expose those anymore in the CallStack API, instead we use a type synonym HasCallStack. GHC should infer HasCallStack constraints instead. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11573#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler