(module show_user_adt (data IntBox (ctor MkIntBox (con Int))) (instance (class prelude.Show) (type (con IntBox)) (method show (body (lam (params (typed x (con IntBox))) (ret (con Str)) (body (match x (case (pat-ctor MkIntBox n) (app int_to_str n)))))))) (fn main (type (fn-type (params) (ret (own (con Unit))) (effects IO))) (params) (body (app print (term-ctor IntBox MkIntBox 7)))))