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...