loopA_ initial cond incr f === loopA initial cond incr (pure ()) (\i -> id <$ f i)
>>> loopDeepM 1 (< 20) (+ 2) [] (\i a -> Just (i:a)) Just [1,3,5,7,9,11,13,15,17,19]Equivalent to:
>>> loopM 19 (>= 1) (subtract 2) [] (\i a -> Just (i:a)) Just [1,3,5,7,9,11,13,15,17,19]
>>> loopM 1 (< 20) (+ 2) [] (\i a -> Just (i:a)) Just [19,17,15,13,11,9,7,5,3,1]
>>> iloopA_ 100 1 (< 10) (+ 2) (\i ix -> print (i, ix)) (100,1) (101,3) (102,5) (103,7) (104,9)
>>> iloopM 100 1 (< 20) (+ 2) [] (\i ix a -> Just ((i, ix) : a)) Just [(109,19),(108,17),(107,15),(106,13),(105,11),(104,9),(103,7),(102,5),(101,3),(100,1)]