 
 /// A disposable that will run an action upon disposal.
 public final class ActionDisposable: Disposable {
-	private var action: Atomic<(() -> ())?>
+	private let action: Atomic<(() -> ())?>
 
 	public var disposed: Bool {
 		return action.value == nil

/// A disposable that will optionally dispose of another disposable.
public final class SerialDisposable: Disposable {
	private struct State {
		var innerDisposable: Disposable? = nil
		var disposed = false
	}

	private var state = Atomic(State())

	public var disposed: Bool {
		return state.value.disposed

		}

		set(d) {
			let oldState = state.modify { state in
				return state.withDisposable(d)
			}

			oldState.innerDisposable?.dispose()
