However, how can you ensure the output type of one program matches the input type of another?
A program emits one type, and the other program accepts another.
Something will be needed to transform one type into another. Imagine doing that on the command line.
However, how can you ensure the output type of one program matches the input type of another?