projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ec197df
)
Clean up a bit and improve an error message
author
pepe
<unknown>
Fri, 26 Sep 2008 21:14:29 +0000
(21:14 +0000)
committer
pepe
<unknown>
Fri, 26 Sep 2008 21:14:29 +0000
(21:14 +0000)
compiler/ghci/RtClosureInspect.hs
patch
|
blob
|
history
diff --git
a/compiler/ghci/RtClosureInspect.hs
b/compiler/ghci/RtClosureInspect.hs
index
164b9c5
..
beb7b58
100644
(file)
--- a/
compiler/ghci/RtClosureInspect.hs
+++ b/
compiler/ghci/RtClosureInspect.hs
@@
-517,8
+517,6
@@
Right hand sides are missing them. We can either (a) drop them from the lhs, or
The function congruenceNewtypes takes a shot at (b)
-}
The function congruenceNewtypes takes a shot at (b)
-}
--- The Type Reconstruction monad
-type TR a = TcM a
-- A (non-mutable) tau type containing
-- existentially quantified tyvars.
-- A (non-mutable) tau type containing
-- existentially quantified tyvars.
@@
-529,20
+527,17
@@
type RttiType = Type
-- An incomplete type as stored in GHCi:
-- no polymorphism: no quantifiers & all tyvars are skolem.
type GhciType = Type
-- An incomplete type as stored in GHCi:
-- no polymorphism: no quantifiers & all tyvars are skolem.
type GhciType = Type
-{-
-runTR :: HscEnv -> TR a -> IO a
-runTR hsc_env c = do
- mb_term <- runTR_maybe hsc_env c
- case mb_term of
- Nothing -> panic "RTTI: Failed to reconstruct a term"
- Just x -> return x
--}
+
+
+-- The Type Reconstruction monad
+--------------------------------
+type TR a = TcM a
runTR :: HscEnv -> TR a -> IO a
runTR hsc_env thing = do
mb_val <- runTR_maybe hsc_env thing
case mb_val of
runTR :: HscEnv -> TR a -> IO a
runTR hsc_env thing = do
mb_val <- runTR_maybe hsc_env thing
case mb_val of
- Nothing -> error "RTTI error: probably due to :forcing an undefined"
+ Nothing -> error "unable to :print the term"
Just x -> return x
runTR_maybe :: HscEnv -> TR a -> IO (Maybe a)
Just x -> return x
runTR_maybe :: HscEnv -> TR a -> IO (Maybe a)
@@
-594,7
+589,9
@@
addConstraint actual expected = do
-- TOMDO: what about the coercion?
-- we should consider family instances
-- TOMDO: what about the coercion?
-- we should consider family instances
--- Type & Term reconstruction
+
+-- Type & Term reconstruction
+------------------------------
cvObtainTerm :: HscEnv -> Int -> Bool -> RttiType -> HValue -> IO Term
cvObtainTerm hsc_env max_depth force old_ty hval = runTR hsc_env $ do
-- we quantify existential tyvars as universal,
cvObtainTerm :: HscEnv -> Int -> Bool -> RttiType -> HValue -> IO Term
cvObtainTerm hsc_env max_depth force old_ty hval = runTR hsc_env $ do
-- we quantify existential tyvars as universal,
@@
-760,6
+757,7
@@
cvObtainTerm hsc_env max_depth force old_ty hval = runTR hsc_env $ do
-- Fast, breadth-first Type reconstruction
-- Fast, breadth-first Type reconstruction
+------------------------------------------
cvReconstructType :: HscEnv -> Int -> GhciType -> HValue -> IO (Maybe Type)
cvReconstructType hsc_env max_depth old_ty hval = runTR_maybe hsc_env $ do
traceTR (text "RTTI started with initial type " <> ppr old_ty)
cvReconstructType :: HscEnv -> Int -> GhciType -> HValue -> IO (Maybe Type)
cvReconstructType hsc_env max_depth old_ty hval = runTR_maybe hsc_env $ do
traceTR (text "RTTI started with initial type " <> ppr old_ty)