some array iterator methods
monad like function sequencer