Index: src/examples/gc_no_raii/src/vector.c
===================================================================
--- src/examples/gc_no_raii/src/vector.c	(revision f80e0218b8bdbe9f5f85bfa8c85ed2fc2c7645ce)
+++ 	(revision )
@@ -1,72 +1,0 @@
-#include "vector.h"
-
-#include <stdlib>
-
-//------------------------------------------------------------------------------
-//Initialization
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void ctor(vector(T, allocator_t) *const this)
-{
-	ctor(&this->storage);
-	this->size = 0;
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void dtor(vector(T, allocator_t) *const this)
-{
-	clear(this);
-	dtor(&this->storage);
-}
-
-//------------------------------------------------------------------------------
-//Modifiers
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void push_back(vector(T, allocator_t) *const this, T value)
-{
-	realloc(&this->storage, this->size+1);
-	data(&this->storage)[this->size] = value;
-	this->size++;
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void pop_back(vector(T, allocator_t) *const this)
-{
-	this->size--;
-	DESTROY(data(&this->storage)[this->size]);
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void clear(vector(T, allocator_t) *const this)
-{
-	for(size_t i = 0; i < this->size; i++)
-	{
-		DESTROY(data(&this->storage)[this->size]);
-	}
-	this->size = 0;
-}
-
-//------------------------------------------------------------------------------
-//Allocator
-forall(otype T)
-void ctor(heap_allocator(T) *const this)
-{
-	this->storage = 0;
-	this->capacity = 0;
-}
-
-forall(otype T)
-void dtor(heap_allocator(T) *const this)
-{
-	free(this->storage);
-}
-
-forall(otype T)
-inline void realloc(heap_allocator(T) *const this, size_t size)
-{
-	enum { GROWTH_RATE = 2 };
-	if(size > this->capacity)
-	{
-		this->capacity = GROWTH_RATE * size;
-		this->storage = (T*)realloc((void*)this->storage, this->capacity * sizeof(T));
-	}
-}
Index: src/examples/gc_no_raii/src/vector.h
===================================================================
--- src/examples/gc_no_raii/src/vector.h	(revision f80e0218b8bdbe9f5f85bfa8c85ed2fc2c7645ce)
+++ 	(revision )
@@ -1,138 +1,0 @@
-#pragma once
-
-#include <stdbool.h>
-#include <stdlib>
-
-#define DESTROY(x)
-
-//------------------------------------------------------------------------------
-//Declaration
-trait allocator_c(otype T, otype allocator_t)
-{
-	void ctor(allocator_t* const);
-	void dtor(allocator_t* const);
-	void realloc(allocator_t* const, size_t);
-	T* data(allocator_t* const);
-};
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-struct vector
-{
-	allocator_t storage;
-	size_t size;
-};
-
-//------------------------------------------------------------------------------
-//Initialization
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void ctor(vector(T, allocator_t) *const this);
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void dtor(vector(T, allocator_t) *const this);
-
-//------------------------------------------------------------------------------
-//Capacity
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline bool empty(vector(T, allocator_t) *const this)
-{
-	return this->size == 0;
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline bool size(vector(T, allocator_t) *const this)
-{
-	return this->size;
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline void reserve(vector(T, allocator_t) *const this, size_t size)
-{
-	realloc(&this->storage, this->size+1);
-}
-
-//------------------------------------------------------------------------------
-//Element access
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline T at(vector(T, allocator_t) *const this, size_t index)
-{
-	return data(&this->storage)[index];
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline T ?[?](vector(T, allocator_t) *const this, size_t index)
-{
-	return data(&this->storage)[index];
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline T front(vector(T, allocator_t) *const this)
-{
-	return data(&this->storage)[0];
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline T back(vector(T, allocator_t) *const this)
-{
-	return data(&this->storage)[this->size - 1];
-}
-
-//------------------------------------------------------------------------------
-//Modifiers
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void push_back(vector(T, allocator_t) *const this, T value);
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void pop_back(vector(T, allocator_t) *const this);
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-void clear(vector(T, allocator_t) *const this);
-
-//------------------------------------------------------------------------------
-//Iterators
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline T* begin(vector(T, allocator_t) *const this)
-{
-	return data(&this->storage);
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline const T* cbegin(const vector(T, allocator_t) *const this)
-{
-	return data(&this->storage);
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline T* end(vector(T, allocator_t) *const this)
-{
-	return data(&this->storage) + this->size;
-}
-
-forall(otype T, otype allocator_t | allocator_c(T, allocator_t))
-static inline const T* cend(const vector(T, allocator_t) *const this)
-{
-	return data(&this->storage) + this->size;
-}
-
-//------------------------------------------------------------------------------
-//Allocator
-forall(otype T)
-struct heap_allocator
-{
-	T* storage;
-	size_t capacity;
-};
-
-forall(otype T)
-void ctor(heap_allocator(T) *const this);
-
-forall(otype T)
-void dtor(heap_allocator(T) *const this);
-
-forall(otype T)
-void realloc(heap_allocator(T) *const this, size_t size);
-
-forall(otype T)
-static inline T* data(heap_allocator(T) *const this)
-{
-	return this->storage;
-}
