FP Block Haskell
The strong, lazy type
Welcome to FP Complete's Haskell education hub! This page contains links to content we believe is most helpful in learning to create commercial Haskell software.
In addition to free online learning material, we also offer training coursing at all levels. For more information, see our training page.
Basics
Just getting started with Haskell? We recommend:
- Follow our Get Started guide to get your tooling set up
- Read Haskell Programming from first principles
Intermediate
Once you know the basics, it's time to solidify your skills. Follow our Applied Haskell syllabus for our recommended set of material. If you'd like a more hands-on training, check out our Haskell Success program.
We also recommend checking out our Haskell best practices.
When you're ready, it's a great idea to try contributing to an open source Haskell project.
Libraries
We've put together a guide to recommended libraries for commercial Haskell development. This is a highly opinionated list based on our experiences. You can also browse libraries available on Stackage.
The following is a list of all library tutorials provided on this site.
- conduit: Streaming data
- yaml: Parsing and rendering YAML
- containers: Maps, Sets, and more
- http-client: Making HTTP requests
- safe-exceptions: Safe and simple exception handling
- stm: Software Transactional Memory
- unliftio: Lifting and unlifting IO actions
- gauge: Benchmarking
- hspec: Testing framework
- typed-process: Run and interact with child processes
- weigh: Memory benchmarking
- vector: Efficient Packed-Memory Data Representations
- optparse-applicative: Command line options parsing
- binary: Serializing data
- aeson: Working with JSON data
- async: Asynchronous and Concurrent Programming
- rio: A standard library
- transformers: Monad transformers
Tutorials
We have the following general tutorials and guides on this site, separate from library-specific documentation.
- Profiling and Performance
- Primitive Haskell
- Common Typeclasses
- String Types
- Lenses
- Crash Course to Applicative Syntax
- How to Play with Stack
- How to Build with Stack
- Operator Glossary
- Applied Haskell 101
- Functional Dependencies
- Monad Transformers
- Synonyms in base
- Recommended Haskell libraries
- Data types
- Safe exception handling
- Web Services
- All about strictness
- How to Script with Stack
- Data Structures
- Mutable variables