Fun I/O provides functional programming patterns and high level abstractions for simple and reusable synchronous I/O.