     }
 }
 
-private func map<T, U: Mapping>(from json: JSONValue, to field: inout T, using mapping: U, context: MappingContext) throws where U.MappedObject == T {
+private func map<T, M: Mapping>(from json: JSONValue, to field: inout T, using mapping: M, context: MappingContext) throws where M.MappedObject == T {
     
     let mapper = Mapper()
     field = try mapper.map(from: json, using: mapping, parentContext: context)
 }
 
-private func map<T, U: Mapping>(from json: JSONValue, to field: inout T?, using mapping: U, context: MappingContext) throws where U.MappedObject == T {
+private func map<T, M: Mapping>(from json: JSONValue, to field: inout T?, using mapping: M, context: MappingContext) throws where M.MappedObject == T {
     
     if case .null = json {
         field = nil

    return json
}

private func map<T, U: Mapping>(to json: JSONValue, from field: T?, via key: Keypath, using mapping: U) throws -> JSONValue where U.MappedObject == T {
    var json = json
    
    guard let field = field else {

                field.append(contentsOf: newObjects)
                
            case .replace(delete: let deletionBlock):
                var orphans: RRC = field
                
                if let deletion = deletionBlock {
                    newObjects.forEach {
