>>316
関数の評価回数を知りたいだけでしたら、プロファイリングすれば簡単にわかりますよ。

コンパイル時に3つのオプション "-rtsopts -prof -auto-all" を付けて、
実行ファイルの起動時にRTSオプション "+RTS -p" を付ければ、
*.prof ファイルができるんで、それを読めばいいです。

prof ファイルの一番下の表を見てください。
1列目に関数名(変数も関数)、2列目にモジュール名とあって、
4列目の "entries" の項目が評価回数です。

例えば z を返すバージョンの tak 関数を使って、

main :: IO
main = do
  let z = tak 3 2 1
  print z

を上記のようにコンパイルして実行してできた prof ファイルを見ると、
tak の評価回数は 5 と表記されています。
(実際に手計算で let z = tak 3 2 1 を簡約すると、
確かに5回 tak 関数が評価されていることが確認できます)

プロファイリングの詳細は「本物のプログラマはHaskellを使う」
の第45回の記事を参考にしてください。

こういうことではなく、プログラムの中でカウントする仕組みを作るには、
という趣旨の質問でしょうか?