fix rational: for clang