
#15613: GHCi command, tracing steps of instance resolution for Constraint or expression -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: (none) Type: feature request | Status: new Priority: lowest | Milestone: Component: GHCi | Version: Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #15610 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): I think you might want something more like `simplifyDefault` or `solveWanteds`, both exported by `TcSimplify`. Mostly these functions are used ''within'' the typechecker, but the pattern match overlap checker uses the constraint solver in `Check.tyOracle`. A significant factor is whether you want any "givens"; that is, do you want to explain why a constraint fails to be solved under a GADT match, or in a function with a given context. Once you get deeper into the constraint solver, solving one step of each individual constraint, you need the `TcS` monad, which holds the inert set... I'm not sure you want to get into that. Better to tell the constraint solver to try to solve, and see what is left over: it'll return (a) any unsolved constraints and (b) evidence bindings that amount to a specification of the exact proof that it came up with; i.e. the tree you want to display. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15613#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler