Resources
Software
The Glorious Glasgow Haskell Compilation System (GHC) version 8.6.4. The best way to install this compiler is via the Haskell Platform, below. However, you can also download the compiler directly from the website.
The Haskell Platform, latest release. The minimal version of this package includes everything you need to get started, including a recent, stable version of GHC, standard libraries, and tools such as the cabal, stack and haddock.
Some way to edit Haskell source files. I use emacs with dante and/or haskell-mode. There are many other IDEs for Haskell, and you are free to use whichever one you like. This git repo compares the features of various IDEs in Haskell.
Version control. You will need to work on your homework assignments collaboratively, using the git version control system. We have prepared installation instructions to help you get started.
Reference
Haskell.org. Top-level page for Haskell open-source community.
Looking for a function but don't know what it's called? Want to see the documentation for a particular function? Hoogle searches many standard libraries and can search either by name or by type.
Hackage is a huge repository of Haskell packages. If it isn't on Hackage, it doesn't exist. Packages can be automatically downloaded and installed from Hackage using the cabal-install tool.
What I wish I knew when learning Haskell will take you far beyond CIS 552, but is a good reference for the Haskell ecosystem.
Reading (free online)
Learn You a Haskell for Great Good! is a whimsical and easy-to-follow Haskell tutorial, with super awesome illustrations.
Real World Haskell, by Bryan O'Sullivan, Don Stewart, and John Goerzen, published by O'Reilly. A thorough and detailed introduction to Haskell that gets into the nitty gritty of using Haskell effectively in the "real world". Can be read online for free, or in dead tree form.
School of Haskell provides tutorials for beginners through advanced Haskell programmers.
Reading (recommended books)
Programming in Haskell, 2nd Ed. Graham Hutton, the master of Haskell education, has recently updated his textbook. It starts gently and covers the core material of this class with clarity and grace.
Parallel and Concurrent Programming in Haskell describes how functional programming matters in the context of multithreaded and multicore architectures.
Beginning Haskell: A Project-Based Approach A new textbook --- includes a treatment of modern, advanced features.
Watching
The Haskell eXchange conference provides talks and tutorials aimed at advanced Haskell practitioners. Check out skillscasts from 2016, 2015, 2014, 2013, and 2012.
Simon Peyton Jones's lecture "Classes, Jim, but not as we know them" from OPLSS 2013. Video is in three parts. Slides are also available.
Help/community
We will answer all of your questions on Piazza. Don't be shy.
Functional programming slack hosts a slack channel for many fp languages, including Haskell.
tryhaskell.org gives you a ghci session in your browser, and includes a very simple tutorial. It also features an interface to the #haskell IRC channel.
The #haskell IRC channel is a great place to get help. Strange as it may seem if you've spent time in other IRC channels, #haskell is always full of friendly, helpful people.
The Haskell-beginners mailing list is a good place to ask beginner-level questions.
The Haskell-cafe mailing list can also be a good place to ask questions, but is much higher-traffic.
Planet Haskell aggregates blog posts from the Haskell community.
There is a Haskell subreddit for aggregating Haskell-related websites, blog posts, and news.