+import "JavaBuiltin" as Java
+
importJava "java.util.Iterator" where
data T a
loop ()
else ()
+@inline
+iterI :: (Integer -> a -> <e> b) -> T a -> <Proc,e> ()
+iterI f it = loop 0
+ where
+ loop i =
+ if hasNext it
+ then do
+ f i (next it)
+ loop (Java.iadd i 1)
+ else ()
+
@inline
iterB :: (a -> <e> Boolean) -> T a -> <Proc,e> Boolean
iterB f it = loop ()