published in SLE 2015 - Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering Journal