(module poly_id
  (fn id
    (type (forall (vars a) (fn-type (params (own a)) (ret (own a)))))
    (params x)
    (body x))
  (fn main
    (type (fn-type (params) (ret (own (con Unit))) (effects IO)))
    (params)
    (body (seq (seq (app print (app id 42)) (do io/print_str "\n")) (seq (app print (app id true)) (do io/print_str "\n"))))))
