Text this: Logical Foundations of Functional Programming