Atypical Typing

Length: 75 minutes


Many of the shortcomings of Java's type system were addressed by the addition of generics to Java 5.0. Java's generic types are a direct outgrowth of research into strong type systems in languages like SML and Haskell. But the powerful, expressive type systems of research languages like Haskell are capable of feats that exceed the dreams of programmers familiar only with mainstream languages.

In this talk I give a brief retrospective on the history of type systems and an introduction to the type system of the Haskell language, including a remarkable example where the Haskell type checker diagnoses an infinite loop bug at compile time.


I was invited to speak at the 23rd OOPSLA conference. OOPSLA is the annual ACM conference on object-oriented programming systems, languages, and applications. This talk is the result.


I'd like to take this opportunity to thank Gail Harris, the conference chair, for inviting me. Also thanks to Philip Wadler for advising me on what OOPSLA people might like to hear about.

Online Slides

If you don't want to read the notes below, you can skip straight to the slides.

Strange Introduction

When I gave the talk at OOPSLA, I pretended to have forgotten my slides. "No problem," I said. "All my talks these days are generated automatically by the computer anyway. I'll just rebuild it from scratch." I then displayed this form, which initially looked like this:

I then filled out the form appropriately for OOPSLA:

Then press the button, and poof! Instant slides.

The shameful confession

Slide 3 just says "shameful confession". The shameful confession is as follows: Several years back I was at a technical conference and I was attending a keynote speaker session which was unusually bad. The talk was a long sequence of platitudes and the speaker was a smug windbag. I stood up in disgust and walked out. "These keynote speeches are always a waste of time," I said. "I swear I will never attend one again."

And until 2008 OOPSLA, I kept that promise. But I had to attend that session because I was the keynote speaker! So the shameful confession is that I am an oath-breaker.

Funny story about the Java compiler

On slide 24 I mention Philip Wadler and Martin Odersky. At this point in the talk I repeated an anecdote that Wadler told me. After they had done the work on generics, Odersky was hired by Sun to write the new Java compiler. He thought the generics were a good idea, so he put them into the compiler. The Sun folks always ran the compiler with the generics turned off. But they couldn't rip out the generics completely, because they needed them in the compiler in order to get it to compile its own source code, which was written with generics. So they had to leave the feature in, and eventually they started using it, and eventually they decided they liked it.

Online Slides

Browse slides online

Related Talks

This is actually a revised, updated version of Strong Typing Doesn't Have to Suck, for an OOPSLA audience instead of a Perl Mongers audience.

Return to: Universe of Discourse main page | Perl Paraphernalia | Other Classes and Talks