We address the problem of reasoning about Haskell programs that use Software Transactional Memory (STM). As a motivating example, we consider Haskell code for a concurrent non-det...
We propose an extension of functional logic languages that allows the definition of operations with patterns containing other defined operation symbols. Such “function patterns...
Monads are commonplace programming devices that are used to uniformly structure computations with effects such as state, exceptions, and I/O. This paper further develops the monad...
Neil Ghani, Patricia Johann, Tarmo Uustalu, Varmo ...
It is well known that software maintenance and evolution are expensive activities, both in terms of invested time and money. Reverse engineering activities support the obtainment ...
This paper describes a type system that is capable of expressing and enforcing immutability constraints. The specific constraint exis that the abstract state of the object to whi...