clone() {
      const p = this.fork(ALL);
      p.add = p.add.slice();
      p.rem = p.rem.slice();
      p.mod = p.mod.slice();
      if (p.source) p.source = p.source.slice();
      return p.materialize(ALL | SOURCE);
    }
Creates a copy of this pulse with new materialized array
instances for the ADD, REM, MOD, and SOURCE arrays.
The dataflow, time stamp and field modification values are copied over.
@return {Pulse} - The cloned pulse instance.
@see init