 	
 	public func map<Result2>(f: (ResultS, StateS) -> (Result2, StateS)) -> State<StateS, Result2, (Result2, StateS)?> {
 		return State {
-			return Identity(f <^> self.run($0).value)
+			Identity(f <^> self.run($0).value)
 		}
 	}
 	

	public typealias PointedValue = ResultS
	
	public static func pure(a: ResultS) -> Self {
		let values: StateS -> Identity<ValuesS> = {
			let values = (a, $0) as! ValuesS
			return Identity(values)
		}
		
		return Self.init(values)
	}
}


	public func map<Result2>(f: (ResultS, StateS) -> (Result2, StateS)) -> State<StateS, Result2, (Result2, StateS)> {
		return State {
			let (r, s) = self.run($0).value
			
			return Identity(f(r, s))
		}
	}
