module GHCi.ResolvedBCO
( ResolvedBCO(..)
, ResolvedBCOPtr(..)
) where
import SizedSeq
import GHCi.RemoteTypes
import GHCi.BreakArray
import Data.Array.Unboxed
import Data.Binary
import GHC.Generics
data ResolvedBCO
= ResolvedBCO {
resolvedBCOArity :: Int,
resolvedBCOInstrs :: UArray Int Word16,
resolvedBCOBitmap :: UArray Int Word,
resolvedBCOLits :: UArray Int Word,
resolvedBCOPtrs :: (SizedSeq ResolvedBCOPtr)
}
deriving (Generic, Show)
instance Binary ResolvedBCO
data ResolvedBCOPtr
= ResolvedBCORef Int
| ResolvedBCOPtr (RemoteRef HValue)
| ResolvedBCOStaticPtr (RemotePtr ())
| ResolvedBCOPtrBCO ResolvedBCO
| ResolvedBCOPtrBreakArray (RemoteRef BreakArray)
deriving (Generic, Show)
instance Binary ResolvedBCOPtr