For this reason I was often confused learning nim if `init` implied I should pass a value to be initialized C-style, or if it instead actually created something for me. I know there's the existing low-level memory function of the same name, but I like the idea of a version of Nim that uses these words consistently, such as `create()`, `{.noinit.}`, `new()` . It would also make nim easier to teach!
I recently had a use case where I needed for template reasons `init` style `parse(typedesc[T], v)` versions of the `strutils` parsing functions. Another case I was desiring uniformity but I'm this case for composition.