I felt like doing a little Haskell and this came along.