Snapshot
is a type class generalizing Serialize
, as it, apart from
writing values in the Put
monad (or reading in Get
), allows to perform
arbitrary IO
actions, like saving data to (or loading from) some external
database files. Any instance of Serialize
is also trivially an instance of
Snapshot
.