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".