Haskell らしい話題が無くてつまらなそうなので、適当に投下してみます

GHC は自動でメモ化を行う事は無いという話が以前ありました
ではメモ化はどうやってやるのという話に発展するのかと思いきや、
話の本筋ではなかったようで、全く触れられなかったんですね

特定の関数をメモ化する方法は Haskell 関連の本にもよく載っています
(たとえば The Craft of Functional Programming や The Haskell School of Expression など)

なので、もう少し一般的に、かつ Haskell らしく
遅延性を活かして実装する方法を述べた記事を紹介します

Conal さんのブログより
Elegant memoization with functional memo tries
http://conal.net/blog/posts/elegant-memoization-with-functional-memo-tries

この記事の続編にあたるものも書かれているので、
ブログ内をぶらぶらと散策してみるのもいいと思います

(圏論みたいな周辺知識を得る本の紹介よりも、
こういった直接的な技術の紹介の方がいいですか)