by Jan van Eijck
A book that presents mathematical logic and proof structure using the Haskell functional programming language, and presents Haskell using mathematical logic and proof structure.