"`seq ! i` returns the `i`th element of the sequence `seq`. Indexing starts from zero."
(!) :: f a -> Integer -> a
+"Returns the first element of a sequence"
+@inline
+first l = l!0
+
+"Returns the last element of a sequence"
+@inline
+last l = l!(length l-1)
+
instance IndexedSequence [] where
(!) = getList