And Frege was based on Haskell which takes the exact opposite approach:  everything is pure&#x2F;immutable by default, and extra effort is required to write impure code and mutable data. What if we had a plugin that worked this way? It would assume everything should be pure&#x2F;immutable and require explicit annotations (@Impure, @Mutable) otherwise.  There are a lot of complications, but it&#x27;s food for thought.