Engineering Large Projects in a Functional Language

I had the opportunity to speak at DevNation on July 10th in Portland, and gave the following talk, an updated version of Galois’ collective experiences developing Haskell projects over the past decade. You can download the .pdf.


Galois has been building software systems in Haskell for the past decade. This talk describes some of what we’ve learned about in-the-large, commercial Haskell programming in that time. I’ll look at when and where we use Haskell. At correctness, productivity, scalabilty, maintainability, and what language features we like: types, purity, types, abstractions, types, concurrency, types!

We’ll also look at the Haskell toolchain: FFI, HPC, Cabal, compiler, libraries, build systems, etc, and being a commercial entity in a largely open source community.

One thought on “Engineering Large Projects in a Functional Language

  1. Don,

    On slide 18 you give an example for “Types aren’t enough though” with “Type T should be represented with 7 bits”. What would you do in this instance to make that happen aside from modifying GHC directly? The next slides go on to talk about other ways of performing verification but none of them seem to apply to the example given.

    Just wondering!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s