public void Set(MemoryType type, object value, uint index)
        {
            if (index >= memory.Length)
            {
                throw new IndexOutOfRangeException("Set");
            }

            memory[index] = new MemorySlot(type, value);
        }
        public void Set(MemoryType type, object value, uint index)
        {
            if (index >= memory.Length)
            {
                throw new IndexOutOfRangeException("Set");
            }

            memory[index] = new MemorySlot(type, value);
        }
        public void Clear(uint newSize)
        {
            Local = null;
            memory = new MemorySlot[newSize];

            for (int i = 0; i < memory.Length; ++i)
            {
                memory[i] = null;
            }
        }
        public void Clear(uint newSize)
        {
            Local  = null;
            memory = new MemorySlot[newSize];

            for (int i = 0; i < memory.Length; ++i)
            {
                memory[i] = null;
            }
        }
        public MemorySlot Get(uint index)
        {
            if (index >= memory.Length)
            {
                throw new IndexOutOfRangeException("Get");
            }

            MemorySlot tmp = memory[index];

            if (tmp == null)
            {
                throw new InvalidOperationException(string.Format("Get: Memory at index `{0}` is null.", index));
            }
            else
            {
                return(tmp);
            }
        }