[WIP] Signal<T> tests

But it turns out that types prevent a lot of errors that tests would normally catch! Who knew?
You'd think. I imagine it has something to do with `Signal` being parameterized.

If we wanted to do something about this, we'd probably have to change this into a free function. I dunno how you feel about that.