{ "schema": "ailang/v0", "name": "mq3_two_show_ambiguous", "imports": [ { "module": "mq3_two_show_ambiguous_a" }, { "module": "mq3_two_show_ambiguous_b" } ], "defs": [ { "kind": "fn", "name": "main", "doc": "mq.3.6 fixture (a): bare `show 42` in a workspace where two Show classes (in modA and modB) each ship Show Int. Without an explicit qualifier the dispatch is genuinely ambiguous; the typechecker must fire `ambiguous-method-resolution` naming both candidate classes.", "type": { "k": "fn", "params": [], "ret": { "k": "con", "name": "Unit" }, "effects": ["IO"] }, "params": [], "body": { "t": "do", "op": "io/print_str", "args": [ { "t": "app", "fn": { "t": "var", "name": "show" }, "args": [{ "t": "lit", "lit": { "kind": "int", "value": 42 } }] } ] } } ] }