Repository : http://darcs.haskell.org/ghc.git/
On branch : master https://github.com/ghc/ghc/commit/3d0d8d02b0f1359813eed00c0910cb6729460a13 >--------------------------------------------------------------- commit 3d0d8d02b0f1359813eed00c0910cb6729460a13 Author: Simon Peyton Jones <[email protected]> Date: Mon May 27 17:27:33 2013 +0100 Do not do an ambiguity check on the type in a GHCi ":kind" command Otherwise we get errors for polykinded type families; type family F a :: * Then :k F would give an ambiguity check trying to unify (F k1) with (F k2), which is all a bit stupid. I found this when investigating Trac #7939 >--------------------------------------------------------------- compiler/typecheck/TcValidity.lhs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/compiler/typecheck/TcValidity.lhs b/compiler/typecheck/TcValidity.lhs index 3a828da..e232598 100644 --- a/compiler/typecheck/TcValidity.lhs +++ b/compiler/typecheck/TcValidity.lhs @@ -61,6 +61,12 @@ import Data.List ( (\\) ) \begin{code} checkAmbiguity :: UserTypeCtxt -> Type -> TcM () checkAmbiguity ctxt ty + | GhciCtxt <- ctxt -- Allow ambiguous types in GHCi's :kind command + = return () -- E.g. type family T a :: * -- T :: forall k. k -> * + -- Then :k T should work in GHCi, not complain that + -- (T k) is ambiguous! + + | otherwise = do { allow_ambiguous <- xoptM Opt_AllowAmbiguousTypes ; unless allow_ambiguous $ do {(subst, _tvs) <- tcInstSkolTyVars (varSetElems (tyVarsOfType ty)) _______________________________________________ ghc-commits mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-commits
