A spreadsheet written in Haskell