If viewing pointers as values, it's easy to understand this behavior, and I 
believe it's correct. However most people don't understand it that way. Nim 
only distinguishs between `ptr T` (immutable pointer) and `var ptr T` (mutable 
pointer), but not `var ptr T` (mutable pointer to an object) and `var ptr var 
T` (mutable pointer to a mutable object). Things like "pointer to an immutable 
object" are missing. Also it's inconsistent with `seq` which can only be either 
`var seq[T]` (appendable, movable, with mutable items) or `seq[T]` 
(unappendable, immovable, with immutable items).

Reply via email to