Index: doc/papers/concurrency/examples/Fib.cpp
===================================================================
--- doc/papers/concurrency/examples/Fib.cpp	(revision 13b1b1d87a883d8882e3f5c63671582f5cec72c5)
+++ doc/papers/concurrency/examples/Fib.cpp	(revision 571bf75fca1908eab72cd01b00ab71ac182c788c)
@@ -1,7 +1,8 @@
-#include "base.hpp"
-
 #include <algorithm>
+#include <iostream>
 #include <iterator>
 #include <vector>
+
+#include <experimental/coroutine>
 
 template<typename T>
@@ -14,6 +15,6 @@
 		}
 
-		auto initial_suspend() { return suspend_always(); }
-		auto final_suspend()   { return suspend_always(); }
+		auto initial_suspend() { return std::experimental::suspend_always(); }
+		auto final_suspend()   { return std::experimental::suspend_always(); }
 
 		void return_value(T value) {
@@ -23,5 +24,5 @@
 		auto yield_value(T value) {
 			_value = value;
-			return suspend_always();
+			return std::experimental::suspend_always();
 		}
 
Index: doc/papers/concurrency/examples/Format.cpp
===================================================================
--- doc/papers/concurrency/examples/Format.cpp	(revision 13b1b1d87a883d8882e3f5c63671582f5cec72c5)
+++ doc/papers/concurrency/examples/Format.cpp	(revision 571bf75fca1908eab72cd01b00ab71ac182c788c)
@@ -1,11 +1,8 @@
-
-#include "base.hpp"
+#include <iostream>
+#include <experimental/coroutine>
 
 struct fmt_cor {
 	struct promise_type {
 		char _value;
-		struct locals {
-			int g, b;
-		} * _l;
 
 		fmt_cor get_return_object() {
@@ -13,14 +10,9 @@
 		}
 
-		auto initial_suspend() { return suspend_never(); }
-		auto final_suspend()   { return suspend_always(); }
+		auto initial_suspend() { return std::experimental::suspend_never(); }
+		auto final_suspend()   { return std::experimental::suspend_always(); }
 
 		void return_void() {}
 		void unhandled_exception() {}
-
-		auto yield_value(locals & l) {
-			_l = &l;
-			return suspend_never();
-		}
 	};
 
@@ -50,7 +42,5 @@
 		if(_coroutine) {
 			_coroutine.destroy();
-			if (_coroutine.promise()._l->g != 0 | _coroutine.promise()._l->b != 0) {
-				std::cout << "\n";
-			}
+
 		}
 	}
@@ -79,6 +69,13 @@
 
 fmt_cor Fmt() {
-	fmt_cor::promise_type::locals l;
-	co_yield l;
+	struct locals {
+		int g, b;
+
+		~locals() {
+			if (g != 0 | b != 0) {
+				std::cout << "\n";
+			}
+		}
+	} l;
 	for(;;) {
 		for(l.g = 0; l.g < 5; l.g++) {
Index: doc/papers/concurrency/examples/base.hpp
===================================================================
--- doc/papers/concurrency/examples/base.hpp	(revision 13b1b1d87a883d8882e3f5c63671582f5cec72c5)
+++ 	(revision )
@@ -1,20 +1,0 @@
-#include <iostream>
-#include <experimental/coroutine>
-
-struct suspend_never {
-	bool await_ready() noexcept {
-		return true;
-	}
-
-	void await_suspend(std::experimental::coroutine_handle<>) noexcept {}
-	void await_resume() noexcept {}
-};
-
-struct suspend_always {
-	bool await_ready() noexcept {
-		return false;
-	}
-
-	void await_suspend(std::experimental::coroutine_handle<>) noexcept {}
-	void await_resume() noexcept {}
-};
Index: doc/papers/concurrency/examples/counter.cpp
===================================================================
--- doc/papers/concurrency/examples/counter.cpp	(revision 13b1b1d87a883d8882e3f5c63671582f5cec72c5)
+++ doc/papers/concurrency/examples/counter.cpp	(revision 571bf75fca1908eab72cd01b00ab71ac182c788c)
@@ -1,3 +1,4 @@
-#include "base.hpp"
+#include <iostream>
+#include <experimental/coroutine>
 
 struct counter_cor {
@@ -7,6 +8,6 @@
 		}
 
-		auto initial_suspend() { return suspend_never(); }
-		auto final_suspend()   { return suspend_never(); }
+		auto initial_suspend() { return std::experimental::suspend_never(); }
+		auto final_suspend()   { return std::experimental::suspend_never(); }
 
 		void return_void() {}
@@ -47,5 +48,5 @@
 	std::cout << "Counter: called\n";
 	for(unsigned i = 1;; i++) {
-		co_await suspend_always{};
+		co_await std::experimental::suspend_always{};
 		std::cout << "Counter: Resumed " << i << " time(s)\n";
 	}
