There is a functional language called Mercury. I don't care about the language, but on the website there are incredibly insightful documents, and reduction order is explained in a very clear way: https://mercurylang.org/documentation/papers.html
(The oldest stuff)