Transactional Boosting for Haskell

Transactional boosting is a methodology used to transform highly concurrent linearizable objects into highly concurrent transactional objects. In this paper we describe a STM Haskell extension that allows programmers to write boosted versions of highly concurrent abstract data types. Although the technique can only be applied to abstract types that have certain properties, when used correctly, we obtain transactional versions of existing types that are much faster than if they were implemented with pure STM Haskell.