The implementation of functional programming languages (Prentice-Hall, 1988)