 extension AnyArrayBuffer where Dispatch: VectorFactorArrayDispatch {
   /// Returns the error vectors, at `x`, of the factors.
   func errorVectors(at x: VariableAssignments) -> AnyVectorArrayBuffer {
-    withUnsafePointer(to: storage) { dispatch.errorVectors($0, x) }
+    dispatch.errorVectors(.init(self), x)
   }
 
   /// Returns the linearizations, at `x`, of the factors.
   func linearized(at x: VariableAssignments) -> AnyGaussianFactorArrayBuffer {
-    withUnsafePointer(to: storage) { dispatch.linearized($0, x) }
+    dispatch.linearized(.init(self), x)
   }
 }
 

    _ y: AnyElementArrayBuffer,
    into result: inout VariableAssignments
  ) {
    withUnsafePointer(to: storage) {
      dispatch.errorVectors_linearComponent_adjoint($0, y, &result)
    }
  }
}

extension AnyArrayBuffer where Dispatch: FactorArrayDispatch {
  /// Returns the errors, at `x`, of the factors.
  func errors(at x: VariableAssignments) -> [Double] {
    dispatch.errors(.init(self), x)
  }
}

