each deref will take a value from the channel
deref from a closed channel returns nil
deref with timeout must either timeout or take value from the channel (not both!). Might just want to call some variant of alt!! through the var
use internals efficiently
do NOT implement IPending/realized, neither interpretation is that great
The implementation of deref and timed deref is conceptually straightforward, but is difficult to implement due to circular namespace dependencies. Suggestions welcome.