Systems programs rely on fine-grain control of data representation and use of state to achieve performance, conformance to hardware specification, and temporal predictability. T...
In computer science curricula the two areas programming and software engineering are usually separated. In programming students learn an object oriented language and then deepen t...
Languages with rich type systems are beginning to employ a blend of type inference and type checking, so that the type inference engine is guided by programmer-supplied type annot...
Dimitrios Vytiniotis, Stephanie Weirich, Simon L. ...
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 ...
We present a pair of reasoning principles, definition and proof by rigid induction, which can be seen as proper generalizations of lazy-datatype induction to monadic effects other...