Practical Aspects of Declarative Languages - Hudak, Paul; Warren, David S. (Springer Berlin Heidelberg, 2008)