code I'm producing as I learn the crap out of haskell