Index: libcfa/src/Makefile.am
===================================================================
--- libcfa/src/Makefile.am	(revision 8157bde02e6d1039ff6b40dd3645d976ca644a29)
+++ libcfa/src/Makefile.am	(revision 58b2638c3336891719488015a8b46015e19d89d6)
@@ -84,4 +84,5 @@
 	time.hfa \
 	bits/weakso_locks.hfa \
+	algorithms/range_iterator.hfa \
 	containers/maybe.hfa \
 	containers/pair.hfa \
Index: libcfa/src/algorithms/range_iterator.cfa
===================================================================
--- libcfa/src/algorithms/range_iterator.cfa	(revision 8157bde02e6d1039ff6b40dd3645d976ca644a29)
+++ libcfa/src/algorithms/range_iterator.cfa	(revision 58b2638c3336891719488015a8b46015e19d89d6)
@@ -14,12 +14,16 @@
 //
 
+#include "range_iterator.hfa"
 
+#include <stdio.h>
 
-void main(RangeParser & this) {
+#include <fstream.hfa>
+
+void main(RangeIter & this) {
 	for() {
 		this._start = -1;
 		this._stop = -1;
 		int start_len = -1, stop_len = -1;
-		int ret = sscanf(this.text, "%u%n-%u%n", &this._start, &start_len, &stop, &stop_len);
+		int ret = sscanf(this.text, "%u%n-%u%n", &this._start, &start_len, &this._stop, &stop_len);
 		switch(ret) {
 		case 0:
@@ -44,5 +48,5 @@
 			}
 			this.text += stop_len;
-			for(this.com i = this._start; this.com <= this._stop; this.com++) {
+			for(this.com = this._start; this.com <= this._stop; this.com++) {
 				suspend;
 			}
Index: libcfa/src/algorithms/range_iterator.hfa
===================================================================
--- libcfa/src/algorithms/range_iterator.hfa	(revision 8157bde02e6d1039ff6b40dd3645d976ca644a29)
+++ libcfa/src/algorithms/range_iterator.hfa	(revision 58b2638c3336891719488015a8b46015e19d89d6)
@@ -17,5 +17,6 @@
 	const char * text;
 	int com;
-	int
+	int _start;
+	int _stop;
 };
 
@@ -24,3 +25,3 @@
 }
 
-static inline bool next(RangeIter & this) { return resume(this).com > 0; }
+static inline bool moveNext(RangeIter & this) { resume(this); return this.com > 0; }
