scalaz
Examples showing the use of Unapply to reduce the need for type annotations
Character/Line/Word Count from "The Essense of the Iterator Pattern".