Exploration of haskell through a spec for a database version control system