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:
M. Steindorfer, and J. Vinju. Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, page 783--800. New York, NY, USA, ACM, (2015)
M. Odersky, and A. Moors. IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science, volume 4 of Leibniz International Proceedings in Informatics (LIPIcs), page 427--451. Dagstuhl, Germany, Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik, (2009)
V. Ureche, C. Talau, and M. Odersky. Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages &\#38; Applications, page 73--92. ACM, (2013)
A. Sewe, M. Mezini, A. Sarimbekov, and W. Binder. Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, page 657--676. ACM, (2011)
Y. Hayduk, A. Sobe, and P. Felber. Distributed Applications and Interoperable Systems, volume 9038 of Lecture Notes in Computer Science, Springer, (2015)
D. Wiebusch, and M. Latoschik. Software Engineering and Architectures for Realtime Interactive Systems (SEARIS), proceedings of the IEEE Virtual Reality 2012 workshop, (2012)
D. Wiebusch, M. Latoschik, and H. Tramberend. Virtuelle und Erweiterte Realität, 7. Workshop of the GI special interest group VR/AR, page 47--58. Shaker Verlag, (2010)
M. Latoschik, and H. Tramberend. Software Engineering and Architectures for Realtime Interactive Systems (SEARIS), 2012 5th Workshop on, page 9-17. (March 2012)
M. Latoschik, and H. Tramberend. Software Engineering and Architectures for Realtime Interactive Systems (SEARIS), 2012 5th Workshop on, page 9-17. (March 2012)
S. Tasharofi, P. Dinges, and R. Johnson. ECOOP 2013 – Object-Oriented Programming, volume 7920 of Lecture Notes in Computer Science, page 302-326. Springer Berlin Heidelberg, (2013)
P. Suter, A. Köksal, and V. Kuncak. Proceedings of the 18th international conference on Static analysis, page 298--315. Berlin, Heidelberg, Springer-Verlag, (2011)