docs: function isIValueElementNode(node) {
      return typeof node['getValue'] === 'function' &&
          typeof node['setValue'] === 'function' &&
          typeof node.currently['getValue'] === 'function' &&
          typeof node.currently['hasValue'] === 'function' &&
          typeof node.currently['hasAnyValue'] === 'function' &&
          typeof node.currently['containsValue'] === 'function' &&
          typeof node.wait['hasValue'] === 'function' &&
          typeof node.wait['hasAnyValue'] === 'function' &&
          typeof node.wait['containsValue'] === 'function' &&
          typeof node.eventually['hasValue'] === 'function' &&
          typeof node.eventually['hasAnyValue'] === 'function' &&
          typeof node.eventually['containsValue'] === 'function';
  }