Interface Types for Haskell

Peter Thiemann and Stefan Wehr

In Proceedings of the Sixth Asian Symposium on Programming Languages and Systems. Lecture Notes in Computer Science, vol. 5356, Bangalore, India. SPRINGER, 2008.


Interface types are a useful concept in object-oriented programming languages like Java or C#. A clean programming style advocates relying on interfaces without revealing their implementation.

Haskell's type classes provide a closely related facility for stating an interface separately from its implementation. However, there are situations in which no simple mechanism exists to hide the identity of the implementation type of a type class. This work provides such a mechanism through the integration of lightweight interface types into Haskell.

The extension is non-intrusive as no additional syntax is needed and no existing programs are affected. The implementation extends the treatment of higher-rank polymorphism in production Haskell compilers.


  author = {Peter Thiemann and Stefan Wehr},
  title = {Interface Types for {Haskell}},
  booktitle = {Proceedings of the Sixth Asian Symposium on Programming Languages and Systems},
  address = {Bangalore, India},
  year = 2008,
  volume = 5356,
  series = {Lecture Notes in Computer Science},
  publisher = {SPRINGER}


  • Preprint: .pdf ( Springer-Verlag)
  • Talk at APLAS 2008: .pdf
  • Implementation
  • Acceptance rate: 48.8 % (41 papers reviewed, 20 accepted)
Last modified: 2015-06-10T22:24:05+02:00