|  | @@ -164,23 +164,25 @@ namespace System.Reactive.Linq.ObservableImpl
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          private sealed class _ : Sink<TResult>, IObserver<TSource>
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  | -            // CONSIDER: This sink has a parent reference that can be considered for removal.
 | 
	
		
			
				|  |  | +            private readonly Func<TAccumulate, TSource, TAccumulate> _accumulator;
 | 
	
		
			
				|  |  | +            private readonly Func<TAccumulate, TResult> _resultSelector;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            private readonly Aggregate<TSource, TAccumulate, TResult> _parent;
 | 
	
		
			
				|  |  |              private TAccumulate _accumulation;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              public _(Aggregate<TSource, TAccumulate, TResult> parent, IObserver<TResult> observer, IDisposable cancel)
 | 
	
		
			
				|  |  |                  : base(observer, cancel)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                _parent = parent;
 | 
	
		
			
				|  |  | -                _accumulation = _parent._seed;
 | 
	
		
			
				|  |  | +                _accumulator = parent._accumulator;
 | 
	
		
			
				|  |  | +                _resultSelector = parent._resultSelector;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                _accumulation = parent._seed;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              public void OnNext(TSource value)
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  |                  try
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    _accumulation = _parent._accumulator(_accumulation, value);
 | 
	
		
			
				|  |  | +                    _accumulation = _accumulator(_accumulation, value);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  catch (Exception exception)
 | 
	
		
			
				|  |  |                  {
 | 
	
	
		
			
				|  | @@ -200,7 +202,7 @@ namespace System.Reactive.Linq.ObservableImpl
 | 
	
		
			
				|  |  |                  var result = default(TResult);
 | 
	
		
			
				|  |  |                  try
 | 
	
		
			
				|  |  |                  {
 | 
	
		
			
				|  |  | -                    result = _parent._resultSelector(_accumulation);
 | 
	
		
			
				|  |  | +                    result = _resultSelector(_accumulation);
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  catch (Exception exception)
 | 
	
		
			
				|  |  |                  {
 |