     
     @inlinable
     @inline(__always)
-    public static func * (lhs: Scalar, rhs: Self) -> Self {
+    public static func * (lhs: Element.Scalar, rhs: Self) -> Self {
         return rhs.map { lhs * $0 }
     }
     @inlinable
     @inline(__always)
-    public static func * (lhs: Self, rhs: Scalar) -> Self {
+    public static func * (lhs: Self, rhs: Element.Scalar) -> Self {
         return lhs.map { $0 * rhs }
     }
     @inlinable
     @inline(__always)
-    public static func / (lhs: Self, rhs: Scalar) -> Self {
+    public static func / (lhs: Self, rhs: Element.Scalar) -> Self {
         return lhs.map { $0 / rhs }
     }
     @inlinable
     @inline(__always)
-    public static func *= (lhs: inout Self, rhs: Scalar) {
+    public static func *= (lhs: inout Self, rhs: Element.Scalar) {
         lhs = lhs * rhs
     }
     @inlinable
     @inline(__always)
-    public static func /= (lhs: inout Self, rhs: Scalar) {
+    public static func /= (lhs: inout Self, rhs: Element.Scalar) {
         lhs = lhs / rhs
     }
 }


public protocol ScalarMultiplicative : AdditiveArithmetic {
    
    associatedtype Scalar : ScalarMultiplicative where Scalar == Scalar.Scalar
    
    static prefix func - (x: Self) -> Self
    

//  THE SOFTWARE.
//

public protocol ScalarProtocol: SignedNumeric, Strideable, ExpressibleByFloatLiteral, Multiplicative, ScalarMultiplicative where Self == Scalar {
    
    static func * (lhs: Self, rhs: Self) -> Self
    
