@Araq > Spark doesn't allow dynamic allocations at all. (Correct me if I'm wrong.)
You're correct; SPARK doesn't allow dynamic allocation at all, at least not [according to this series of slides](https://www.cse.msu.edu/~cse814/Lectures/09_spark_intro.pdf), and given other restrictions that I know SPARK makes, that makes sense. Everything has to be on the stack. (I am very, very novice-level at SPARK, but I know enough to have found at least one bug in AdaCore's gnatprove.) The (very, very limited) work I've done with Ada suggests that the language is designed to make it as easy as possible to use the stack, and really hard to use pointers. A rule about pointers not being allowed to point to something that might have gone out of scope also seems similar to something in your blog post, but I don't have the time to look it up at the moment. Anyway, it was just a question & suggestion on my part. I like Nim a lot & hope to use it non-trivially one day. I also like Ada a lot, and I read comp.lang.ada sometimes. Some Ada users can be rather prickly about discussions of Ada, especially when someone says or implies that Ada doesn't have something it's had since 1983. They recently [stirred up a few members to protest on the Rust language forum](https://users.rust-lang.org/t/if-ada-is-already-very-safe-why-rust/21911/11). ;-)
