Sun Feb 7 13:04:58 CET 2010
Problem with evaluation order
Might be symptomatic of some conceptual error:
*Main> putStr $ valuesShow $ let a = var "a" + 1 in [a,1/a]
R1 <- div 1.0 R2
R2 <- add a 1.0
out: R2 R1
Maybe the problem is in the use of union: this doesn't respect order?
union [2,4] [1,4,5] => [2,4,1,5]
Or not.. I don't see the direct connection though.
About pointer equality: apparently that's not referentially
transparent. There is a StableNames module that provides something
like a pointer name, but it's in the IO monad.