module InteractiveEvalTypes (
#ifdef GHCI
RunResult(..), Status(..), Resume(..), History(..),
#endif
) where
#ifdef GHCI
import Id
import Name
import RdrName
import TypeRep
import ByteCodeInstr
import ByteCodeLink
import SrcLoc
import Exception
import Control.Concurrent
data RunResult
= RunOk [Name]
| RunException SomeException
| RunBreak ThreadId [Name] (Maybe BreakInfo)
data Status
= Break Bool HValue BreakInfo ThreadId
| Complete (Either SomeException [HValue])
data Resume
= Resume {
resumeStmt :: String,
resumeThreadId :: ThreadId,
resumeBreakMVar :: MVar (),
resumeStatMVar :: MVar Status,
resumeBindings :: ([TyThing], GlobalRdrEnv),
resumeFinalIds :: [Id],
resumeApStack :: HValue,
resumeBreakInfo :: Maybe BreakInfo,
resumeSpan :: SrcSpan,
resumeHistory :: [History],
resumeHistoryIx :: Int
}
data History
= History {
historyApStack :: HValue,
historyBreakInfo :: BreakInfo,
historyEnclosingDecls :: [String]
}
#endif