Add `Z`-based list operations
This came up here: it would be very useful to be able to interact with lists through an entirely Z
-based interface -- in particular for length
and lookup
. take
and drop
have also been mentioned.
For some of these operations, questions remain about the desired behavior on negative inputs. Currently, l !! Z.to_nat z
is common, but that will mean negative inputs return the list head --I think returning None
probably makes more sense.
Another concern is lia
integration.