Revert type params -- it seems they're needed by compilation (weird). Add the concept of combining two signals into a signal of tuples of their values