An abstraction for wrapping arbitrary data structures