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.
- optparse-applicative: Command line options parsing
- aeson: Working with JSON data
- vector: Efficient Packed-Memory Data Representations
- yaml: Parsing and rendering YAML
- unliftio: Lifting and unlifting IO actions
- rio: A standard library
- async: Asynchronous and Concurrent Programming
- safe-exceptions: Safe and simple exception handling
- transformers: Monad transformers
- hspec: Testing framework
- weigh: Memory benchmarking
- gauge: Benchmarking
- binary: Serializing data
- stm: Software Transactional Memory
- http-client: Making HTTP requests
- conduit: Streaming data
- typed-process: Run and interact with child processes
- containers: Maps, Sets, and more
Tutorials
We have the following general tutorials and guides on this site, separate from library-specific documentation.
- String Types
- Mutable variables
- Lenses
- Web Services
- Operator Glossary
- Data types
- Synonyms in base
- All about strictness
- Primitive Haskell
- Applied Haskell 101
- How to Script with Stack
- Data Structures
- Profiling and Performance
- How to Play with Stack
- Safe exception handling
- Recommended Haskell libraries
- Crash Course to Applicative Syntax
- Monad Transformers
- Common Typeclasses
- Functional Dependencies
- How to Build with Stack