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