 
 // MARK: - Array derivative extensions
 
-extension Array.DifferentiableView: ElementaryFunctions where Element: ElementaryFunctions {
+extension Array.DifferentiableView: ElementaryFunctions
+    where Element: Differentiable & ElementaryFunctions
+{
     /// The square root of `x`.
     ///
     /// For real types, if `x` is negative the result is `.nan`. For complex

}

extension Array.DifferentiableView
    : MutableCollection, RandomAccessCollection, RangeReplaceableCollection {
    public typealias Element = Array<Element>.Element
    public typealias Index = Array<Element>.Index
    public typealias Indices = Array<Element>.Indices

}

extension Array.DifferentiableView: PointwiseMultiplicative
    where Element: Differentiable & PointwiseMultiplicative
{
    // FIXME: `one` should probably be removed from the protocol. `Array` cannot represent `one`.
    public static var one: Self {
        fatalError("One is not array-representable")
