|  | @@ -196,3 +196,20 @@ assert "123|456\n98|76|54".splitlines() | PipeMap(lambda s: s.split("|")) | Pipe
 | 
	
		
			
				|  |  |      ((1, 2, 3), (4, 5, 6)),
 | 
	
		
			
				|  |  |      ((9, 8), (7, 6), (5, 4)),
 | 
	
		
			
				|  |  |  ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +class PipePair(PipeMap):
 | 
	
		
			
				|  |  | +    def __init__(
 | 
	
		
			
				|  |  | +        self, function: typing.Callable[[typing.Any], typing.Any], axis: int = 0
 | 
	
		
			
				|  |  | +    ) -> None:
 | 
	
		
			
				|  |  | +        super().__init__(function=lambda a: (a, function(a)), axis=axis)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +assert range(65, 68) | PipePair(chr) | Pipe(list) == [
 | 
	
		
			
				|  |  | +    (65, "A"),
 | 
	
		
			
				|  |  | +    (66, "B"),
 | 
	
		
			
				|  |  | +    (67, "C"),
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +assert range(2, 4) | PipeMap(range) | PipePair(lambda n: n**3, axis=1) | PipeMap(
 | 
	
		
			
				|  |  | +    set
 | 
	
		
			
				|  |  | +) | Pipe(list) == [{(0, 0), (1, 1)}, {(0, 0), (1, 1), (2, 8)}]
 |