I was just curious why something as simple as value assignment to a shared pointer is left out of the library? It seems so simple and useful that the omission appears deliberate. Maybe I completely misunderstand something about the library or about nim. Thanks for your time.
import fusion/smartptrs
let sp = newSharedPtr 0.int
(sp[]) = 12 # okay
int(sp[]) = 12 # okay (uses the converter)
sp[] = 13 # error
proc `[]=`[T](p:SharedPtr[T], v:T) = (p[]) = v
sp[] = 13 # obv works now
Also, I do know idiomatic nim is to embrace the GC, but I'm exploring using smart pointers for some code that requires low-level casting. I think I've decided I can't use smartptrs unless I roll my own, but I'm still curious about the above question.