cs1501 http://shuklan.com/haskell/