Functional Programming And Input / Output door Andrew D. Gordon