Why is `pure` a keyword that needs to be added, with impure being the default? This discourages programmers from marking functions as pure. I like how Nim does it, with `func` declaring a function (pure) and `proc` declaring a procedure (impure).
https://github.com/roc-lang/roc/blob/b2503210da6b58a4ce1254d...
We want languages that encourage good design.
If your goal is - like Crystal - to be as pain free of a migration from Python to Blorp, this shouldn't really impact it, since the compiler can and should be able to auto-fix this.
Marketing.
Instead of reading the code littered with "impure" keywords, you look at the beautiful code marked as "pure".
But there can be many (small) applications where pure doesn't even matter, so I don't really want to force someone to write "impure" for the main function, for example.