Match on denom/num instead of () with guards