Title: Haskell Programming from First Principles