if we go option A, it would be managed in a way kinda like this: ```rust impl<..., P> SomePositioningTrait for Esp3PWM<..., P> where P: Counter,

::Output: CartesianDistance, ...some hackery here that defines T as a certain distance ```