Goodwin refers to both Rust and Pony. I think that Pony has the bigger 
potential, especially when combined with the Bacon/Dingle approach. They have 
something in common: An adaptive view to a given reference. It might change 
from e.g. "owned" to "unowned". Pony offers a little bit more than 
Bacon/Dingle. We already realized in the RFC-Thread, that an alias is not 
simply a (reference counted) copy of something else. We either break the 
consistency of the Bacon/Dingle concept, introducing a lot of tests against nil 
in stead or we have to introduce new annotations (e.g. the `kill T`) . A 
function call would now provide the compiler with additional information, how 
to proceed with the passed parameter(s). E.g. removing them from the scope 
(they simply vanish) or to "downgrade" them ("owned" -> "unowned") or to 
upgrade them ("unowned" -> "owned") . So one might pass a `ref` as a
    `var`, the ref itself being "unowned", und the call to a function `unlink` 
changes the "unowned" to "owned". 

Reply via email to