Each process must work the following way:
If the signal processor has a fixed sample rate or amplitude
either implied by its parameters or its inputs
then this parameter should be set as Just
in the corresponding fields of SigP.T.
These fields must be computed
independently from the function argument of type (t',y').
This function argument is the pair of eventually used signal parameters
sample rate and amplitude.
If you set signal parameters to Just with a value,
then you can expect that the corresponding pair member has the same value.

This routine is prepared for infinite lists.
In order to handle them we employ a Cantor diagonalization scheme.
It does not check for validity of the data
(i.e. equal Just values)
but it does only keep some Justs,
and thus allows for a quick search of a guess of a parameter value.

This is a simple working version of mergeParameters,
which does not need Eq constraint.
However, flattening a three-dimensional list
does handle different dimensions differently,
that is slower than the others.

A complex signal graph can be built without ever mentioning a sampling rate.
However when it comes to playing or writing a file,
we must determine the sampling rate eventually.
This function simply passes a signal through
while forcing it to the given sampling rate.