pub trait ArgOut<T, const IDX: usize> { }
If ArgOut is implemented for J, it means that J can be used to read output of type T