No unmatched returns (and some small cleanups)
Introduce and use an index() type instead od pos_integer()