hoge= trace "hoge eval" 1
foo= trace "foo eval"
fibs= (trace "0 eval" 0):1:(zipWith (+) fibs (tail fibs))
main = print $ [hoge,hoge,foo 1, foo 1] ++ take 5 fibs2

実行結果
hoge eval
foo eval
foo eval
0 eval
[1,1,1,1,0,1,1,2,3]

メモ化の基準が分からない…