            genericSigniture = ""
        } else if input.isKnownType {
            genericSigniture = "<OUT: Deserializable>"
        } else if output.isKnownType {
            genericSigniture = "<IN: Serializable>"
        } else {
            genericSigniture = "<IN: Serializable, OUT: Deserializable>"
        }
        
        print("")
        print("    public func request\(genericSigniture)(_ endpoint: Endpoint<\(input), \(output)>\(inputSigniture)) -> Observable<Response<\(output)>> {")
        print("        return observe { self.fetcher.request(endpoint\(inputProvider), callback: $0) }")
        print("    }")
    }
    print("}")