I notice I'm able to retrieve haskell variables after a :r in ghci:

:m + Data.Binary
:m + GHCi.RemoteTypes

encodeFile "/tmp/foo" =<< mkRemoteRef "hello!"

(:reload)

putStrLn =<< localRef =<< decodeFile "/tmp/foo"

"hello!"

Is this safe? It works correctly in the common case but are there things I need to be careful of?

In the string case it's not too interesting but it would be great to e.g. retrieve the pid of a running process.

Tom