Hoopl: Dataflow Optimization Made Simple
Norman Ramsey, Joao Dias, Simon Peyton Jones
What the Heck are Algebraic Data Types? (for Programmers)
Daniel Eklund
The Algebra of Algebraic Data Types
Chris Taylor
Why Functional Programming Matters
John Hughes
QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs
Koen Claessen, John Hughes
Coq tutorial Program verification using Coq
Jean-Christophe Filliatre