public NewType <T> Multiply(NewType <T> rhs) => GetType() == rhs.GetType() ? (NewType <T>) NewType.Construct(GetType(), TypeDesc.Multiply(Value, rhs.Value, TypeDesc <T> .Default)) : failwith <NewType <T> >("Mismatched NewTypes in multiply");
public NewType <T> Divide(NewType <T> rhs) => GetType() == rhs.GetType() ? (NewType <T>) NewType.Construct(GetType(), TypeDesc.Divide(Value, rhs.Value, TypeDesc <T> .Default)) : failwith <NewType <T> >("Mismatched NewTypes in divide");
public NewType <T> Append(NewType <T> rhs) => GetType() == rhs.GetType() ? (NewType <T>) NewType.Construct(GetType(), TypeDesc.Append(Value, rhs.Value, TypeDesc <T> .Default)) : failwith <NewType <T> >("Mismatched NewTypes in append/add");
public NewType <T> Subtract(NewType <T> rhs) => GetType() == rhs.GetType() ? (NewType <T>) NewType.Construct(GetType(), TypeDesc.Subtract(Value, rhs.Value, TypeDesc <T> .Default)) : failwith <NewType <T> >("Mismatched NewTypes in subtract");
public NewType <T> Select(Func <T, T> map) => (NewType <T>) NewType.Construct(GetType(), map(Value));