unit okcatch; error E { Bad = 1, } fn leaf() -> E!i32 { return E.Bad; } fn top() -> E!i32 { let v = leaf() catch |e| { return e; }; return v; }