Functional and Logic Programming - John P. Gallagher, Martin Sulzmann (Springer, 2018)