
Why Rust ditched pure functions - zeronone
https://mail.mozilla.org/pipermail/rust-dev/2013-April/003926.html
======
ngrilly
Very instructive read! Thanks for sharing.

------
LeanderK
I am not yet convinced, probably because the response is too short. Can
somebody explain the problems with the effect system more detailed?
"Eventually people just took to making everything io, at which point it was a
noise word and we decided to remove it" this is not happening in haskell, is
it the domain rust is used that just doesn't have that can't tolerate much
purity?

------
simooooo

      "It shouldn't be too complex" is sadly optimistic, and your analogy is telling
    

What a burn.

~~~
maxcan
OP here, what I had in mind was simple propagation where only functions marked
impure could call impure functions. While I maintain that in the abstract, one
could design a language around that feature without incurring a huge amount of
complexity, Graydon was right doing it bluntly with annotations is a very
blunt tool and anything more granular would have been quite complicated. I
never interpreted it as a burn, rather someone who knew far more about Rust
educating an experienced Haskeller with essentially no direct Rust experience
on some of their design decisions.

