This document summarizes a presentation about testing in functional programming. It discusses: 1. Property-based testing and how it can find bugs early by generating many test cases, including edge cases. However, it can be painful to write tests for complex functions interacting with external systems. 2. Mocking external dependencies to test internal logic, made possible through techniques like tagless final which separate interfaces from implementations. Complex interactions can be modeled with state machines. 3. Other FP testing techniques like newtypes, refined types, and libraries that make testing easier by restricting valid inputs. The presentation provides examples of testing parsing, network calls and database access in isolation.