             }
         }
     }
-
-    public static func pure(value: V) -> Result<V> {
-        return .Value(value)
-    }
 }
 
+/**
+    Wraps value in Result
+*/
 public func pure<V>(value: V) -> Result<V> {
     return Result<V>.pure(value)
 }

precedence 130
}

public func <*> <V, U>(transform: Result<V -> U>, result: Result<V>) -> Result<U> {
    return result.apply(transform)
}

        }
    }

    /**
        If there's no error, perform function with value and return wrapped result
    */
    public func map<U>(transform: V -> U) -> Result<U> {
        switch self {
        case .Value(let value):
