The old article
Preventing memoization in (AI) search problems
http://okmij.org/ftp/Haskell/index.html#memo-off
deals with the problem, explaining the trick to deliberately confuse
GHC so that it won't perform memoization (sharing). Yes, I know how
bad this confusing of GHC sounds: which is part of my argument that
lazy evaluation by default was a mistake.