{"abstract":"Rejects an empty string although variadic keywords accept it and changes the required Python-language result.","category":"Call argument binding","checks":7,"contract":"Invoke f(**left, **right), returning ordered keyword pairs. Reject any duplicate keyword across mappings even when values agree; keys must be strings. Inputs use the finite Python types shown in the fixtures. An error string denotes the specified caught exception, not an unhandled process failure.","contract_signature":"left, right","evaluation_group":"xl-keyword-unpacking-collisions","failed_approach":"The alternative still fails because it requires unpacked keyword names to be lexical identifiers.","family":"xl-keyword-unpacking-collisions-empty-name-rejected","id":"FA-4946","implementations":{"attempt":{"sha256":"d00eda7241bd760beded30ad7990810db02e0eecd0ebc2fe6237a14730c0896a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(left, right):\n    if any(not isinstance(k,str) or not k.isidentifier() for k in list(left)+list(right)): return \"TypeError\"\n    def f(**kw): return [[k,v] for k,v in kw.items()]\n    try: return f(**left, **right)\n    except TypeError: return \"TypeError\"\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('duplicate equal rejected', solve({'a': 1}, {'a': 1}), 'TypeError')\ncheck('duplicate different rejected', solve({'a': 1}, {'a': 2}), 'TypeError')\ncheck('integer key rejected', solve({1: 'v'}, {}), 'TypeError')\ncheck('empty name legal', solve({'': 2}, {}), [['', 2]])\ncheck('hyphenated name legal', solve({'a-b': 3}, {}), [['a-b', 3]])\ncheck('left then right order', solve({'z': 1}, {'a': 2}), [['z', 1], ['a', 2]])\ncheck('empty expansions', solve({}, {}), [])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"dc992ef595b60c3352429bc24dd0826127c6cc19567fb1bada5cd71e0a2f154a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(left, right):\n    if \"\" in left or \"\" in right: return \"TypeError\"\n    def f(**kw): return [[k,v] for k,v in kw.items()]\n    try: return f(**left, **right)\n    except TypeError: return \"TypeError\"\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('duplicate equal rejected', solve({'a': 1}, {'a': 1}), 'TypeError')\ncheck('duplicate different rejected', solve({'a': 1}, {'a': 2}), 'TypeError')\ncheck('integer key rejected', solve({1: 'v'}, {}), 'TypeError')\ncheck('empty name legal', solve({'': 2}, {}), [['', 2]])\ncheck('hyphenated name legal', solve({'a-b': 3}, {}), [['a-b', 3]])\ncheck('left then right order', solve({'z': 1}, {'a': 2}), [['z', 1], ['a', 2]])\ncheck('empty expansions', solve({}, {}), [])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":" This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"xl-keyword-unpacking-collisions-empty-name-rejected","generated_at":"2026-09-29T14:37:44.451484+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Runs Python standard-library language operations in a deterministic local reproducer. Literal expected answers are authored independently. Related defects share an evaluation group to avoid benchmark split leakage.","root_cause":"Rejects an empty string although variadic keywords accept it. The executable reproducer isolates this operation from the rest of the contract.","sha256":"f63e6a8392ba98330f7cba55fcb276eec2a690be3bca05929b368b498906c2af","title":"Keyword unpacking collisions: Rejects an empty string although variadic keywords accept it · case 01","variant":1,"variant_policy":"The five numbered cases rerun the same authored boundary fixtures; they are reproducibility runs, not independent input variants.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":38.112,"exit_code":1,"observations":[{"actual":"TypeError","check":"duplicate equal rejected","expected":"TypeError","passed":true},{"actual":"TypeError","check":"duplicate different rejected","expected":"TypeError","passed":true},{"actual":"TypeError","check":"integer key rejected","expected":"TypeError","passed":true},{"actual":"TypeError","check":"empty name legal","expected":[["",2]],"passed":false},{"actual":"TypeError","check":"hyphenated name legal","expected":[["a-b",3]],"passed":false},{"actual":[["z",1],["a",2]],"check":"left then right order","expected":[["z",1],["a",2]],"passed":true},{"actual":[],"check":"empty expansions","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"duplicate equal rejected\", \"actual\": \"TypeError\", \"expected\": \"TypeError\", \"passed\": true}, {\"check\": \"duplicate different rejected\", \"actual\": \"TypeError\", \"expected\": \"TypeError\", \"passed\": true}, {\"check\": \"integer key rejected\", \"actual\": \"TypeError\", \"expected\": \"TypeError\", \"passed\": true}, {\"check\": \"empty name legal\", \"actual\": \"TypeError\", \"expected\": [[\"\", 2]], \"passed\": false}, {\"check\": \"hyphenated name legal\", \"actual\": \"TypeError\", \"expected\": [[\"a-b\", 3]], \"passed\": false}, {\"check\": \"left then right order\", \"actual\": [[\"z\", 1], [\"a\", 2]], \"expected\": [[\"z\", 1], [\"a\", 2]], \"passed\": true}, {\"check\": \"empty expansions\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.096,"exit_code":1,"observations":[{"actual":"TypeError","check":"duplicate equal rejected","expected":"TypeError","passed":true},{"actual":"TypeError","check":"duplicate different rejected","expected":"TypeError","passed":true},{"actual":"TypeError","check":"integer key rejected","expected":"TypeError","passed":true},{"actual":"TypeError","check":"empty name legal","expected":[["",2]],"passed":false},{"actual":[["a-b",3]],"check":"hyphenated name legal","expected":[["a-b",3]],"passed":true},{"actual":[["z",1],["a",2]],"check":"left then right order","expected":[["z",1],["a",2]],"passed":true},{"actual":[],"check":"empty expansions","expected":[],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"duplicate equal rejected\", \"actual\": \"TypeError\", \"expected\": \"TypeError\", \"passed\": true}, {\"check\": \"duplicate different rejected\", \"actual\": \"TypeError\", \"expected\": \"TypeError\", \"passed\": true}, {\"check\": \"integer key rejected\", \"actual\": \"TypeError\", \"expected\": \"TypeError\", \"passed\": true}, {\"check\": \"empty name legal\", \"actual\": \"TypeError\", \"expected\": [[\"\", 2]], \"passed\": false}, {\"check\": \"hyphenated name legal\", \"actual\": [[\"a-b\", 3]], \"expected\": [[\"a-b\", 3]], \"passed\": true}, {\"check\": \"left then right order\", \"actual\": [[\"z\", 1], [\"a\", 2]], \"expected\": [[\"z\", 1], [\"a\", 2]], \"passed\": true}, {\"check\": \"empty expansions\", \"actual\": [], \"expected\": [], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}