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.

Example

```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); } ```