Alter range to include Haskell-like step ranges, and add snd and fst