#7967: With dependent types, error reported in seemingly unrelated function -----------------------------+---------------------------------------------- Reporter: goldfire | Owner: Type: bug | Status: new Priority: normal | Component: Compiler Version: 7.7 | Keywords: DataKinds, GADTs Os: Unknown/Multiple | Architecture: Unknown/Multiple Failure: None/Unknown | Blockedby: Blocking: | Related: -----------------------------+---------------------------------------------- Comment(by simonpj@…): commit 262cab0f1c928fb3fea9afa4d2c442edb3103c08 {{{ Author: Simon Peyton Jones <simonpj@microsoft.com> Date: Wed Jun 12 09:38:54 2013 +0100 Fix the constraint simplifier (Trac #7967) Richard's bug report showed up a couple of subtleties in the constraint solver * We can strengthen the kind invariants on CTyEqCan and CFunEqCan See Note [Kind orientation for CTyEqCan] and Note [Kind orientation for CFunEqCan] in TcRnTypes There are some changes to reOrient and checkKind in TcCanonical to support these stronger invarants. * In TcSimplify we must make sure that we re-simplify if defaultTyVar does anything. See Note [Must simplify after defaulting] in TcSimplify. The usual round of refactoring follows! compiler/typecheck/TcCanonical.lhs | 174 ++++++++++++++++++++---------------- compiler/typecheck/TcInteract.lhs | 77 +++------------- compiler/typecheck/TcRnTypes.lhs | 53 ++++++++++- compiler/typecheck/TcSMonad.lhs | 6 +- compiler/typecheck/TcSimplify.lhs | 53 ++++++++---- 5 files changed, 194 insertions(+), 169 deletions(-) }}} -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7967#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler