 }
 
 /// A disposable that will run an action upon disposal.
-@final class ActionDisposable: Disposable {
+struct ActionDisposable: Disposable {
 	var _action: Atomic<(() -> ())?>
 
 	var disposed: Bool {


import Foundation

/// Represents an object that can be “disposed,” usually associated with freeing
/// resources or canceling work.
@class_protocol protocol Disposable {
	/// Whether this disposable has been disposed already.
	var disposed: Bool { get }



/// A disposable that only flips `disposed` upon disposal, and performs no other
/// work.
struct SimpleDisposable: Disposable {
	var _disposed = Atomic(false)

	var disposed: Bool {
