     func replaceTypeReferences(typeMap: TypeMap) throws
 }
 
-extension GraphQLObjectType    : GraphQLTypeReferenceContainer {}
-extension GraphQLInterfaceType : GraphQLTypeReferenceContainer {}
+extension GraphQLObjectType      : GraphQLTypeReferenceContainer {}
+extension GraphQLInterfaceType   : GraphQLTypeReferenceContainer {}
+extension GraphQLInputObjectType : GraphQLTypeReferenceContainer {}
 
 /**
  * These types may describe the parent context of a selection set.

public final class GraphQLInputObjectType {
    public let name: String
    public let description: String?
    public let fields: InputObjectFieldMap
    public let kind: TypeKind = .inputObject

    public init(
        name: String,
        description: String? = nil,
        fields: InputObjectConfigFieldMap
    ) throws {
        try assertValid(name: name)
        self.name = name

            name: name,
            fields: fields
        )
    }
    
    func replaceTypeReferences(typeMap: TypeMap) throws {
        for field in fields {
            try field.value.replaceTypeReferences(typeMap: typeMap)
        }
    }
}

