Container for unserialisable values, such as
IORefs, threads,
MVars, pointers, and device handles.
In a
Handle, you can store a mechanism to create and destroy a
value that survives reloads occuring during live coding even if does
not have a
Data instance. Using the function
handling,
you can create a cell that will automatically initialise your value,
and register it in the
HandlingStateT monad transformer, which
takes care of automatically destroying it (if necessary) when it does
not occur anymore in a later revision of your live program.
Have a look at
Examples for some ready-to-use implementations.
In short,
Handle is an opaque, automatically constructing and
garbage collecting container for arbitrary values in the live coding
environment.