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 langis;

let my_signal = langis::square( langis::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);
}
```