A signal is a structure that can yield an infinite amount of data. The API is very similar to std::iter::Iterator
but with the assumption that it will never end.
```rust use signal;
let my_signal = signal::square( signal::constant(0.25) );
loop { asserteq!(mysignal.next(), 1.0); asserteq!(mysignal.next(), 1.0); asserteq!(mysignal.next(), -1.0); asserteq!(mysignal.next(), -1.0); } ```