Program Synthesis:  Autobahn

Although laziness enables beautiful code, it comes with non-trivial performance costs. To alleviate this problem, Haskell allows users to force eager evaluation at certain program points by inserting strictness annotations, known and written as bangs (!). Unfortunately, manual bang placement is labor intensive and difficult to reason about. The AUTOBAHN project explores using genetic algorithms to automatically infer strictness annotations that improve program performance on representative inputs.


Marilyn Sun and Kathleen Fisher. 2018. Autobahn 2.0: Minimizing bangs while maintaining performance (system demonstration). In Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell (Haskell 2018). Association for Computing Machinery, New York, NY, USA, 38–40. DOI:

Yisu Remy Wang, Diogenes Nunez, and Kathleen Fisher. 2016. Autobahn: Using genetic algorithms to infer strictness annotations. In Proceedings of the 9th International Symposium on Haskell (Haskell 2016). Association for Computing Machinery, New York, NY, USA, 114–126. DOI: