(module show_user_adt_with_label (data Item (ctor MkItem (con Int))) (instance (class prelude.Show) (type (con Item)) (method show (body (lam (params (typed it (con Item))) (ret (con Str)) (body (match it (case (pat-ctor MkItem n) (app str_concat "Item " (app int_to_str n))))))))) (fn main (type (fn-type (params) (ret (own (con Unit))) (effects IO))) (params) (body (seq (app print (term-ctor Item MkItem 42)) (do io/print_str "\n")))))