An extension to Data.Serialize with built-in version control