derive `Hash` for `Complex` and `Ratio`