| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Debug.RecoverRTTI.FlatClosure
Contents
Synopsis
- data FlatClosure
- = ConstrClosure { }
- | FunClosure
- | OtherClosure Closure
- getBoxedClosureData :: Box -> IO FlatClosure
- data Box = Box (Any :: Type)
- asBox :: a -> Box
Documentation
data FlatClosure Source #
Flattened form of Closure (with indirection nodes removed)
We only include the fields of Closure that we are interested in.
TODO: For functions (FunClosure, PAPClosure) we don't currently include
any information at all. We could potentially do better here.
Constructors
| ConstrClosure | Constructor application |
| FunClosure | Functions We map |
| OtherClosure Closure | Unrecognized closure type |
Instances
| Show FlatClosure Source # | |
Defined in Debug.RecoverRTTI.FlatClosure Methods showsPrec :: Int -> FlatClosure -> ShowS # show :: FlatClosure -> String # showList :: [FlatClosure] -> ShowS # | |
getBoxedClosureData :: Box -> IO FlatClosure Source #
Re-exports
An arbitrary Haskell value in a safe Box. The point is that even
unevaluated thunks can safely be moved around inside the Box, and when
required, e.g. in getBoxedClosureData, the function knows how far it has
to evaluate the argument.