Support custom IDeref and IPending instances

Closes #9