Functional and Logic Programming - Gallagher (Springer International Publishing, 2018)