I've been thinking about the best approach to implement pure function verification in the Scala compiler. An approach similar to the one in D would fit a lot better than the one used in Haskell (which would break all existing code and cause some problems due to strict evaluation). A solution using annotations would be quite simple to implement:
Y. Hayduk, A. Sobe, und P. Felber. Distributed Applications and Interoperable Systems, Volume 9038 von Lecture Notes in Computer Science, Springer, (2015)
A. Sewe, M. Mezini, A. Sarimbekov, und W. Binder. Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, Seite 657--676. ACM, (2011)
V. Ureche, C. Talau, und M. Odersky. Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages &\#38; Applications, Seite 73--92. ACM, (2013)
M. Odersky, und A. Moors. IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science, Volume 4 von Leibniz International Proceedings in Informatics (LIPIcs), Seite 427--451. Dagstuhl, Germany, Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik, (2009)
M. Steindorfer, und J. Vinju. Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, Seite 783--800. New York, NY, USA, ACM, (2015)