An implementation of "Generic Storage in Haskell"