 where Element: Differentiable {
   /// The viewed array.
   public var base: [Element] {
-    get { return _base }
+    get { _base }
     _modify { yield &_base }
   }
 

  ) {
    func pullback(_ v: TangentVector) -> (TangentVector, TangentVector) {
      precondition(
        v.base.count == lhs.count + rhs.count,
        "+ should receive gradient with count equal to sum of operand "
          + "counts, but counts are: gradient \(v.base.count), "
          + "lhs \(lhs.count), rhs \(rhs.count)")
      return (
        TangentVector([Element.TangentVector](v.base[0..<lhs.count])),
        TangentVector([Element.TangentVector](v.base[lhs.count...]))


  public mutating func move(along direction: TangentVector) {
    precondition(
      base.count == direction.base.count, """
        Count mismatch: \(base.count) ('self') and \(direction.base.count) \
        ('direction')
        """)
    for i in base.indices {
      base[i].move(along: direction.base[i])
    }
