Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Learn to test amortized time complexity of persistent data structures through a domain-specific language (DSL) built on QuickCheck in this 28-minute conference presentation from Haskell 2025. Explore how functional programming languages rely heavily on persistent data structures, yet proving their amortized bounds remains challenging due to the complexity of pen-and-paper proofs and the overhead of full mechanization in proof assistants. Discover a strict DSL that provides strong evidence of correctness while maintaining low user overhead, demonstrated through testing all lazy data structures from Okasaki's foundational book. Examine the practical effectiveness of this approach, including the re-discovery of a previously unreported gap in persistent Finger Trees analysis. Gain insights into laziness, lazy constructors, defunctionalization, and QuickCheck testing methodologies as applied to amortized complexity analysis. Access the accompanying research article and supplementary materials including the creditmonad Haskell package to implement these testing techniques in your own persistent data structure development.