Okay, so here's what I'm trying to change around:
I have a module with two concrete classes.
One is called InputAccumulator, and it has two attributes, a "Parametric" (don't worry about it) that produces an "Input[PathStr]" (don't worry about it), and a callable that combines two "PathStr"s together into one. It defines a method that takes an instance of the other class, and combines it with all of that to create an InputAccumulator with an updated "Parametric".
The other class is called ValueAdaptor, and it consists of a "Label[T_co]" (DON'T WORRY ABOUT IT), and a callable that converts a T_co to a "PathStr".
For some of the code I'm writing, it'd be convenient to have the ability to add a map step "after" the InputAccumulator's "Parametric" that doesn't interfere with the ability to stick more ValueAdaptors onto it.
I COULD try to solve this generally and have a bunch of new type variables added in, but I don't currently NEED to use arbitrary types for accumulation. So, if I try to restrain myself...