code: function () {
        var ctr = this.constructor;
        var names = ctr.__names__;
        var args = [], i = 0, n, val;
        for (; n = names[i]; i++) {
          val = this[n];
          args[i] = val instanceof adt.__Base__ 
            ? val.clone()
            : adt.nativeClone(val);
        }
        return ctr.apply(null, args);
      }
docs: Clones any value that is an adt.js type, delegating other JS values to `adt.nativeClone`.