@Override public TB perform(TB value) { Tensor<V> internalTensor = new ElementUnaryOperation<V>(elementOperation).perform(value.tensor()); /* safe cast since we ensure C as a type in the argument! */ @SuppressWarnings("unchecked") Class<TB> tensorBackedClass = (Class<TB>) value.getClass(); return TensorbackedInternals.createBackedByTensor(tensorBackedClass, internalTensor); }