dye :: forall a. (Generic a, GFrom a, All (All Top) (GCode a), GDatatypeInfo a) => a -> IO (Dyed a) Source#
Create a new Dyed that can be then used with checkDyed. dye will
make a Weak pointer to each field in your type which can be used to
check if any part of the data type is leaking at a later part of the
program.
Represents an object who's contents on the heap have been "dyed".
The dyed contents have weak pointers, which can then be used to check if they
are being retained.