1    type Array<T>
2        def copy_to (array : mut Array<T>) (n : u32) =
3            for i = 0 until n do
4                array[i] = self[i]
5    
6        def as_bytes = Array<u8> size = sizeof T * size
7                                 ptr = ptr as MutPtr as MutPtr<u8>
8    
9        def equals (rhs : Array<T>) =
10           if size <> rhs.size then false
11           else
12               for i = 0 until size do
13                   if self[i] <> rhs[i] then return false
14   
15               true
16   
17   type Array<u8>
18       def bytes_as<U> =
19           let type_size = sizeof U
20           assert size % type_size == 0
21           Array<U> size = size / type_size
22                    ptr = ptr as MutPtr as MutPtr<U>
23   
24   end@ array
25