Ensure objects are cleaned up
The CLR needs to keep objects alive while they are used by Haskell are not otherwise pointed to by the CLR.
On the CLR side, this is currently implemented as an indexed array within the Driver. It would be worth investigating whether this would be better done using GCHandle.
The Haskell side needs to also notify the CLR when it is done with an Object. Base provides the module Foreign.ForeignPtr specifically for this purpose.