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 {
assert_eq!(my_signal.next(), 1.0);
assert_eq!(my_signal.next(), 1.0);
assert_eq!(my_signal.next(), -1.0);
assert_eq!(my_signal.next(), -1.0);
}
```