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]
in:  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.