A Typed Monadic Embedding of Aspects

A Typed Monadic Embedding of Aspects

Nicolas Tabareau, Ismael Figueroa, Éric Tanter

Abstract

We describe a novel approach to embed pointcut/advice aspects in a typed functional programming language like Haskell. Aspects are first-class, can be deployed dynamically, and the pointcut language is extensible. Type soundness is guaranteed by exploiting the underlying type system, in particular phantom types and a new anti-unification type class. The use of monads brings type-based reasoning about effects for the first time in the pointcut/advice setting, thereby practically combining Open Modules and EffectiveAdvice, and enables modular extensions of the aspect language.

Download the paper here: https://dl.acm.org/citation.cfm?id=2451457