It should have about the same API as today, where it still makes sense, but overall modernized. Also fulfill this: * [ ] make it `#[no_std]` enabled * [ ] support more than just linear interpolation * [x] the `Take` iterator should be inclusive, meaning both ends are part of the output for n > 1 * [ ] support slicing with at least [`x..=y`](https://doc.rust-lang.org/std/ops/struct.RangeInclusive.html), but other ranges may also make sense The first two points may go hand in hand, by replacing the internal `Vec` with some input collection.