This is a bit strange because if you are composing functions (same type, in case the signal is [-1,+1], but could be something else, DC Signal, Any Stream, etc), you already know they can only compose because of the type. It would not work otherwise. Even if the same function receives different types, the function has to be correct for that particular context. One can’t use untyped calculi in real life, only on paper.
(Maybe that’s what you said? Ok, but then I could not see what this argument goes against