Well-Typed's Fast Track to Haskell

Topics covered at HASKELL-01-02

Dates coming soon

Are you interested in a highly intensive, highly practical two day Haskell course? Join this workshop to learn Haskell's excellent capabilities for abstraction and how you can use Haskell to quickly develop correct programs that are close to a given specification.

At the centre of the Haskell language is its type system: types that do not get in the way because they can be inferred; types that can be polymorphic and overloaded in various ways; types that explicitly tag functions with side-effects. Learn how these features make Haskell unique, even among functional languages, and learn all about functional language concepts, by understanding Haskell's uncompromising approach.

While we will touch on the theoretical foundations of the language, the focus of this Haskell course is most definitely practice: You will learn how to best use the Haskell toolchain, about important best practices in program development, and you will gain a true understanding on how to best harness and utilise Haskell's power!

Upon completion of this Haskell course, you will be able to design robust functional programs in a principled and systematic way - the kind of things that are difficult to pick up from reading a book.

Learn how to:

  • Read and write Haskell programs
  • Use the Haskell tools productively
  • Exploit the strengths of the Haskell language and its type system
  • Use a functional programming design approach in your day-to-day programming tasks

What the community says

"Overall very good experience. Thank you."

Martin Minich on 23rd Mar 2015

About the Author

Andres Löh

Andres Löh is a long-time functional programming enthusiast. He has started using Haskell in 1997 while being an undergraduate studying mathematics. He obtained his PhD on datatype-generic programming using Haskell from Utrecht University in 2004. Since then, he has continued to use Haskell in research and practice, including teaching various courses both to students and participants from industry. His main interests, next to datatype-generic programming, are embedded domain-specific languages, unleashing the full power of Haskell's type system, parallelism and applying functional languages to real-life problems. Since 2010, Andres is an independent Haskell consultant and partner at Well-Typed LLP.

Thanks to our partners

Quick Tour of Haskell

  • An overview of the most important language concepts of Haskell

Type-Directed Program Development

  • Defining functions systematically

  • Pattern matching

  • An introduction to lists, tuples, and Maybe

Polymorphism and overloading

  • Polymorphic functions and code reuse

  • The power of parametricity

  • Understanding type classes


  • Why effects should be explicit in the types
  • Composing IO actions
  • Structuring interactive programs


  • An introduction to QuickCheck and SmallCheck

Patterns for effects

  • Abstracting from common programming patterns
  • The Maybe, list and state monads
  • The monad interface


If you are a developer who wants to learn about functional programming, and Haskell specifically, but you have little or no experience with any functional language - then this course is for you! This course would also suit those wishing a refresher on Functional Programming and Haskell.


Some familiarity with programming in general is helpful, but no experience in functional programming languages or Haskell is expected

Bring your own hardware

You are requested to bring your own laptop for this course, with the Haskell Platform installed - to learn how to develop within your own environment.

If you are unable to bring a laptop for this course, please contact our community team on +44 207 183 9040 or email us.