record ListS[T, S; capacity] { S size; T[capacity] data; } ListS_remove: [T, S; capacity]u0(ListS[T, S; capacity]* this, S index) -> { T* data = &((*this).data[index]); (*this).size = (*this).size - 1; S sz = (*this).size; loop { if(index == sz) { break; } *data = *(data + 1); data = data + 1; index = index + 1; } return; }; ListS_add: [T, S; capacity]u0(ListS[T, S; capacity]* this, T value) -> { (*this).data[(*this).size] = value; (*this).size = (*this).size + 1; return; };