July 20–24, 2015
Portland, OR

Demystifying Haskell

r0ml Lefkowitz (Retired)
9:00am–12:30pm Tuesday, 07/21/2015
Foundations D139/140
Average rating: ***..
(3.11, 9 ratings)

Prerequisite Knowledge

Participants should know how to program in at least one programming language -- preferably two.

Materials or downloads needed in advance

You will need to have a Haskell development environment installed on your laptop in order to work the examples. Here are instructions to do so.


Haskell is scary. When people talk about Haskell, they seem to be engaged in abstruse mathematical discussions about arcana which the typical programmer finds inscrutable. It has the reputation of being the best programming language to learn to expose oneself to the cutting edge of computer science — and also the hardest programming language to learn because it is so advanced. Haskell has been an incubator for a number of concepts which have found their way into other more mainstream languages (list comprehensions and software transactional memory, to name two).

Haskell is also fun. When Audrey Tang set out to implement Perl 6 — optimized for fun — she chose Haskell.

This tutorial approaches Haskell as a way to do software engineering, as opposed to mathematics or computer science — using an approach that should be familiar to programmers familiar with other languages. Especially, we will not mention monads at all.

In this tutorial you will learn how to:

  • Do systems programming and application development in Haskell
  • Write shell scripts in Haskell
  • Use the foreign function interface to write Haskell programs that can manage Git repositories or do image processing
  • Write an Apache module in Haskell
  • Build your own library to make developing Haskell programs more comfortable
  • Use Cabal — the Haskell package management tool

By the end, you will have learned how to use Haskell productively for software development.

Photo of r0ml Lefkowitz

r0ml Lefkowitz


Robert (a/k/a r0ml) Lefkowitz is a frequent speaker on the intersection of software and literacy. He has previously been a CTO at a math education startup, and held senior technology positions in the telecommunications and financial industries. He is a Distinguished Engineer of the ACM.

Comments on this page are now closed.


Picture of Andrew Whitaker
Andrew Whitaker
07/19/2015 5:26pm PDT

hey there, just wanted to point out in case anyone else is running into this issue (on OSX 10.9.5 specifically):

Steb b in the install instructions* with the big list of cabal installs is missing a dep (really pointfree depends on haskell-src-exts, which depends on but failed to install “happy”), but we can fix that in the interim by adding “happy” to the install list anywhere before pointfree like so “cabal install text parsec random stm QuickCheck happy pointfree hdevtools hlint”

Thanks to https://github.com/fikovnik for pointing me in the right direction here:

posted issue: https://github.com/haskell-suite/haskell-src-exts/issues/240 to haskell-src-exts as they seem not to be finding “happy” when they attempt to install as a dep

  • https://cdn.oreillystatic.com/en/assets/1/event/129/oscon15_demystifying_haskell_install_instructions.pdf