{ "schema": "ailang/v0", "name": "mq3_class_eq_vs_fn_eq", "imports": [ { "module": "mq3_class_eq_vs_fn_eq_classmod" }, { "module": "mq3_class_eq_vs_fn_eq_fnmod" } ], "defs": [ { "kind": "fn", "name": "main", "doc": "mq.3.6 fixture (c): bare `myeq 1 2` in a workspace with `class MyEq` (in classmod) and `fn myeq` (in fnmod) both imported. Fn wins per lookup precedence; the typechecker emits `class-method-shadowed-by-fn` warning so the LLM-author sees the shadow.", "type": { "k": "fn", "params": [], "ret": { "k": "con", "name": "Unit" }, "effects": ["IO"] }, "params": [], "body": { "t": "do", "op": "io/print_bool", "args": [ { "t": "app", "fn": { "t": "var", "name": "myeq" }, "args": [ { "t": "lit", "lit": { "kind": "int", "value": 1 } }, { "t": "lit", "lit": { "kind": "int", "value": 2 } } ] } ] } } ] }