 	
 	/// Initializes a property that first takes on `initialValue`, then each value
 	/// sent on `signal`.
+	///
+	/// - parameters:
+	///   - initialValue: Starting value for the property.
+	///   - signal: A signal that will send values to the property.
 	public init(initialValue: Value, signal: Signal<Value, NoError>) {
 		let mutableProperty = MutableProperty(initialValue)
 		mutableProperty <~ signal

	/// Atomically performs an arbitrary action using the current value of the
	/// variable.
	///
	/// Returns the result of the action.
	public func withValue<Result>(@noescape action: (Value) throws -> Result) rethrows -> Result {
		lock.lock()
		defer { lock.unlock() }

	
	/// Initializes a property that first takes on `initialValue`, then each value
	/// sent on a signal created by `producer`.
	///
	/// - parameters:
	///   - initialValue: Starting value for the property.
	///   - producer: A producer that will start immediately and send values to
	///               the property.
	public init(initialValue: Value, producer: SignalProducer<Value, NoError>) {
		let mutableProperty = MutableProperty(initialValue)
		mutableProperty <~ producer
