Index: doc/papers/OOPSLA17/evaluation/cfa-stack.h
===================================================================
--- doc/papers/OOPSLA17/evaluation/cfa-stack.h	(revision 90152a4860529aff7214be01cd22abd37012cd19)
+++ doc/papers/OOPSLA17/evaluation/cfa-stack.h	(revision 90152a4860529aff7214be01cd22abd37012cd19)
@@ -0,0 +1,16 @@
+#pragma once
+
+forall(otype T) struct stack_node;
+forall(otype T) struct stack {
+	stack_node(T)* head;
+};
+
+forall(otype T) void ?{}(stack(T)* s);
+forall(otype T) void ?{}(stack(T)* s, stack(T) t);
+forall(otype T) stack(T) ?=?(stack(T)* s, stack(T) t);
+forall(otype T) void ^?{}(stack(T)* s);
+
+forall(otype T) _Bool empty(const stack(T)* s);
+forall(otype T) void push(stack(T)* s, T value);
+forall(otype T) T pop(stack(T)* s);
+forall(otype T) void clear(stack(T)* s);
