Haskell: problem 12 (wiki)
type explicit
Haskell: problem 15