; Fieldtest — canonical-type-names, axis 2 (variant b): BadCrossModuleTypeRef ; — known module, unknown type. Author qualifies as `std_maybe.Widget` ; where `std_maybe` IS a workspace module but does not declare a ; `Widget` type. Per ct.1's load-time validator, this should be ; rejected with `BadCrossModuleTypeRef`. prep.1 (kernel-extension- ; mechanics): the rejection path is unchanged structurally; only the ; message wording is narrowed (suggests "use bare from imported ; module instead"). (module ct_3b_bad_qualified_known_module (import std_maybe) (fn passthrough (doc "Identity at std_maybe.Widget — `std_maybe` is real, but `Widget` is not in it.") (type (fn-type (params (own (con std_maybe.Widget))) (ret (own (con std_maybe.Widget))))) (params w) (body w)) (fn main (type (fn-type (params) (ret (own (con Unit))) (effects IO))) (params) (body (do io/print_str "unreachable"))))