the rules are different in unison.
Yeah, I don't want to derail the discussion, but it's actually interesting. It's midway through full referential transparency and side-effects...
valthing, there is also the issue of passing arguments by name and by value, and the fact that
IOcan do async and concurrency. Overall I would also recommend to forget about evaluation and think about it as an abstraction
defis not an expression
val x = def ...?
() => Ais a good candidate?
defis enough to ensure referential transparency, which it isn't
def + by nameis, and in that model
valis the equivalent of