Index: src/examples/ArrayN.c
===================================================================
--- src/examples/ArrayN.c	(revision 4328016591a9d4db95ee1678e3aa76104be4027c)
+++ src/examples/ArrayN.c	(revision 4328016591a9d4db95ee1678e3aa76104be4027c)
@@ -0,0 +1,25 @@
+#include <fstream>
+
+// [unsigned, unsigned] offset_to_index(unsigned offset, unsigned sx, unsigned sy)
+// {
+//     return [offset / sx, offset % sy];
+// }
+
+forall(otype index_t)
+index_t offset_to_index(unsigned offset, index_t size)
+{
+    return [offset / size.0, offset % size.1];
+}
+
+int main(int argc, char* argv[])
+{
+    unsigned x = 0, y = 0, i = 0;
+    unsigned sx = 4, sy = 4;
+
+    i = 6;
+    [x, y] = offset_to_index(6, [sx, sy]);
+
+    sout | x | ' ' | y | endl;
+
+    return 0;
+}
