#ifndef ARRAY_H #define ARRAY_H #include "iterator.h" context array( type array_type, type elt_type ) { lvalue elt_type ?[?]( array_type, int ); }; context bounded_array( type array_type, type elt_type | array( array_type, elt_type ) ) { int array_last( array_type ); }; // implement iterator_for typedef int array_iterator; /// forall( type array_type, elt_type | bounded_array( array_type, elt_type ) ) /// [ array_iterator begin, array_iterator end ] get_iterators( array_type ); forall( type array_type, type elt_type | bounded_array( array_type, elt_type ) ) elt_type *get_begin( array_type ); forall( type array_type, type elt_type | bounded_array( array_type, elt_type ) ) elt_type *get_end( array_type ); #endif /* #ifndef ARRAY_H */