improved abstract over enum pattern matching support