
But I don't see that you don't need introspection at user level for persistence, a dynamic type will do, thus the internals aren't open to inspection. Whatever introspection is necessary can be handled by the runtime system as in Clean and Persistent Haskell. You could look at the internals of a pickle with a binary editor but that's perhaps cheating.
From my reading of the paper, Persistent Haskell was suitably referentially transparent:
"This paper describes the first-ever implementation of orthogonal persistence for a compiled purely functional language, based on an existing St Andrews persistent object store." The conclusion notes in passing that OCaml's persistence isn't referentially transparent. If the Haskell version wasn't, I'd expect a mea culpa from the authors at this point. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.421