public static T Multiply <TSelf, T, E>(this IMeasurement <TSelf> measurement, Ratio <E, T, TSelf> ratio) where TSelf : IMeasurement <TSelf> where E : Ratio <E, T, TSelf> where T : IMeasurement <T> { Validate.NonNull(measurement, nameof(measurement)); Validate.NonNull(ratio, nameof(ratio)); return(ratio.Multiply(measurement)); }