function target(bind, node, param, view) {
    const type = param.event || 'input';
    const handler = () => bind.update(node.value);

    // initialize signal value to external input value
    view.signal(param.signal, node.value);

    // listen for changes on the element
    node.addEventListener(type, handler);

    // register with view, so we can remove it upon finalization
    trackEventListener(view, node, type, handler);

    // propagate change to element
    bind.set = value => {
      node.value = value;
      node.dispatchEvent(event(type));
    };
  }
Bind the signal to an external EventTarget.