Safe Haskell | None |
---|---|
Language | Haskell2010 |
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.
ConstrClosure | Constructor application |
FunClosure | Functions We map |
OtherClosure Closure | Unrecognized closure type |
Instances
Show FlatClosure Source # | |
Defined in Debug.RecoverRTTI.FlatClosure 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.