(next [4 5 6] ) # => 0
(next [4 5 6] 0 ) # => 1
(next [4 5 6] 1 ) # => 2
(next [4 5 6] 2 ) # => nil
# note that dictionary keys are not necessarily in the same order
# as the corresponding literal.
(next {:a 5 :b 6 :c 7} ) # => :a
(next {:a 5 :b 6 :c 7} :a ) # => :c
(next {:a 5 :b 6 :c 7} :c ) # => :b
(next {:a 5 :b 6 :c 7} :b ) # => nil