 import Result
 import ReactiveSwift
 
+/**
+ * Protocol that allows creation of custom Decode errors
+ */
 public protocol DecodeErrorCreatable: Error {
+    
+    /**
+     * Create error containing passed `DecodeError`
+     * 
+     * - parameter decodeError: `DecodeError` which should be wrapped
+     */
     static func createDecodeError(_ decodeError: DecodeError) -> Self
 }
 

        }
    }
    
    public func mapResponseArgo<ResultType: Decodable>(rootKey: String? = nil) -> Signal<[ResultType], Error> where ResultType.DecodedType == ResultType {
        return attemptMap { data in
            let decoded: Decoded<[ResultType]> = rootKey.map {

}

extension SignalProtocol where Value == Any, Error: DecodeErrorCreatable {
    
    /**
     * Map value as `Decodable` object
     *
     * - parameter rootKey: If your objects are contained within dictionary pass the key here
     */
    public func mapResponseArgo<ResultType: Decodable>(rootKey: String? = nil) -> Signal<ResultType, Error> where ResultType.DecodedType == ResultType {
        return attemptMap { data in
            let decoded: Decoded<ResultType> = rootKey.map {
